3

我在使用 javascript/jquery 读取 XML 文件的节点时遇到了问题。

假设我们有一个这样的 xml 文件

<root>
  <people>
    <name>Jack</name>
    <age>18</age>
  </people>
  <name>Rose</name>
</root>

对于这个xml文件,第一层有一个名字,内容为“Rose”,第二层也有一个名字,内容为“Jack”

我曾尝试使用 jquery 的函数来读取文件:

var NAME;
$.get('myxml.xml', 'xml', function(d){
    NAME = $(d).find('name').text();
});

但是这样,每次 NAME 将包含两个节点内容的组合,例如'JackRose'

如果我只想获取第二个节点的内容,即要读取和存储的“Rose”节点,我该怎么办?

谢谢!

4

3 回答 3

3

您可以使用each方法:

$.get('myxml.xml', 'xml', function(d){
    $(d).find('name').each(function(){
        var txt = $(this).text()
    });
});

eq方法:

$.get('myxml.xml', 'xml', function(d){
    var $name = $(d).find('name');
    var first = $name.eq(0).text()        
    var second = $name.eq(1).text()
});
于 2012-10-03T17:53:07.883 回答
2

由于第二个是元素的直接子root元素,因此可以这样找到:

var NAME;
$.get('myxml.xml', 'xml', function(d){
    NAME = $(d).find('> name').text();
});

根据xml,如果根元素不是真正的root元素,并且通常有一个<xml>元素作为根元素,则选择器将是('root > name')

于 2012-10-03T18:01:13.187 回答
2

尝试

var NAME;
$.get('myxml.xml', 'xml', function(d){
    NAME = $(d).find('root > name').text();
});
于 2012-10-03T18:00:23.423 回答