代码之家  ›  专栏  ›  技术社区  ›  melaos

我可以使用jquery从XML树中选择一个子树吗?

  •  1
  • melaos  · 技术社区  · 15 年前

    我对jquery完全陌生,我四处看看是否可以做到。 基本上我有一个这样的XML树结构:

    <?xml version="1.0" encoding="utf-8" ?>
    <RecentTutorials>
      <Tutorial author="The Reddest">
        <Title>Silverlight and the Netflix API</Title>
        <Categories>
          <Category>Tutorials</Category>
          <Category>Silverlight 2.0</Category>
          <Category>Silverlight</Category>
          <Category>C#</Category>
          <Category>XAML</Category>
        </Categories>
        <Date>1/13/2009</Date>
      </Tutorial>
      <Mockup author="The Hairiest">
        <Title>Cake PHP 4 - Saving and Validating Data</Title>
        <Categories>
          <Category>Tutorials</Category>
          <Category>CakePHP</Category>
          <Category>PHP</Category>
        </Categories>
        <Date>1/12/2009</Date>
      </Mockup>
    </RecentTutorials>
    

    仅使用jquery,我可以选择整个模型节点/树及其所有其他子节点/树吗?我试着用.text()玩,但没能得到任何东西。我的谷歌也没能把我带到任何地方。希望你们不介意这个愚蠢的问题:)

    var dom3 = parseXML(str_xml);
    var strTemp = $(dom3).find("Mockup");
    

    所以最终的输出是这样的。

    <Mockup author="The Hairiest">
            <Title>Cake PHP 4 - Saving and Validating Data</Title>
            <Categories>
              <Category>Tutorials</Category>
              <Category>CakePHP</Category>
              <Category>PHP</Category>
            </Categories>
            <Date>1/12/2009</Date>
          </Mockup>
    

    谢谢!

    1 回复  |  直到 15 年前
        1
  •  1
  •   Chii    15 年前

    除了不需要运行parseXML()之外,您所拥有的应该可以工作,只需直接给jquery XML字符串:

    var strTemp = $(str_xml).find("Mockup");
    

    我不认为有一种方法可以得到原始字符串,但是如果您想要字符串,这里有一个方法:您需要用一个标记(any,只要它不复制“mockup”)来包装生成的DOM:

    var xmlString = $('<wrapper>').append(strTemp ).html();//strTemp  from above
    

    生产

    firebug_prompt> $('<wrapper>').append($('<root><ch>test</ch><ch>test2</ch></root>')).html()
    <root><ch>test</ch><ch>test2</ch></root>