2009-09-25 44 views
1

我对jquery完全陌生,我四处张望,看看这是否可以完成。 基本上我有一个XML树结构,看起来像这样:我可以使用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

你有什么应该工作,但你不需要跑parseXML(),只是给jQuery的直接XML字符串:

var strTemp = $(str_xml).find("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> 
+0

mmm,似乎这样做只会拉出一个对象在strTemp :(任何想法如何解决这个问题? – melaos 2009-09-28 02:00:40

+0

你究竟在做什么?你应该用新的内容来编辑你的问题,说你做了什么以及它的失败 - 否则很难说你从一行评论中做了什么 – Chii 2009-09-28 11:46:41

相关问题