我有一个XML文档,我试图选择每个没有子节点的节点。我想我可以通过以下方式实现这一目标:
$(XML).find(':empty')
然而,这只是返回并且空集。以下是我的XML文档的快速浏览。
<BOM>
<BOMHeader>
<ID>ID Text</ID>
<Classification>ClassificationText</Classification>
<Version>VersionText</Version>
<MakeEffectiveDate>MakeEffectiveDateText</MakeEffectiveDate>
<ExpirationDate>ExpirationDate Text</ExpirationDate>
<MaterialID>Material ID Text</MaterialID>
<MaterialDescription>Material Description</MaterialDescription>
<Quantity>Quantity Text</Quantity>
<UOM>UOM Text</UOM>
<CustomProperties>
<Example>Example Text</Example>
</CustomProperties>
</BOMHeader>
</BOM>
所以我想要的是能够读取这个XML并返回等于ID,Classification,Version,MakeEffectiveDate,ExpirationDate,MaterialID,Material Description,Quantity,UOM和Example的节点集。
有关如何实现这一目标的任何想法?非常感谢提前。
答案 0 :(得分:1)
您可以使用filter()
方法:
var $bachelors = $(XML).find('*').filter(function() {
return $(this).children().length === 0
})
答案 1 :(得分:0)
这是因为这些元素都不是:empty
。 :empty
表示没有子节点的元素,例如<elem></elem>
。试试:not(:has(*))
:
$(XML).find(":not(:has(*))")