我有像这样的XML文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<childrens>
<child id="1" value="Root Catalog" parent_id="0">
<child id="2" value="Apparel" parent_id="1">
<child id="4" value="Shirts" parent_id="2"/>
<child id="5" value="Pants" parent_id="2"/>
</child>
<child id="3" value="Accessories" parent_id="1">
<child id="6" value="Handbags" parent_id="3"/>
<child id="7" value="Jewelry" parent_id="3"/>
</child>
.
.
.
<child id='bla bla'>
<child id='bla bla'>
<child id="1005" value="test1" parent_is="1111"/>
<child id="1006" value="test12" parent_is="1111"/>
<child id="1007" value="test123" parent_is="1111"/>
<child>
</child>
<child >
</childrens>
我已经编写了这个jQuery代码来获取leaf元素(没有子元素),例如这里的叶子节点是id为4,5,6,7,1005,1006和1007
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('child').children().each(function(){
var id = $(this).attr('entity_id');
alert(id)
});
}
});
它不能正常工作
答案 0 :(得分:1)
如果您只想选择“叶子节点”的child
元素并且没有任何子节点,您可以使用:empty
选择器并将您的选择更改为:
find('child:empty')
然后通过删除.children()
您的示例XML没有任何名为entity_id
的属性。对于示例XML,您可以选择attr('id')
。
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('child:empty').each(function(){
var id = $(this).attr('id');
alert(id)
});
}
});