我在使用javascript / jquery读取XML文件的节点时遇到了问题。
Say我们有一个像这样的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'要读取和存储,我该怎么办?
谢谢!
答案 0 :(得分: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()
});
答案 1 :(得分:2)
尝试
var NAME;
$.get('myxml.xml', 'xml', function(d){
NAME = $(d).find('root > name').text();
});
答案 2 :(得分:2)
由于第二个是root
元素的直接子元素,因此可以像这样找到它:
var NAME;
$.get('myxml.xml', 'xml', function(d){
NAME = $(d).find('> name').text();
});
根据xml,如果根元素不是root
元素,并且通常有一个<xml>
元素作为根元素,则选择器将为('root > name')
!