如何将:empty选择器应用于XML文档

时间:2012-08-12 15:53:37

标签: javascript jquery

我有一个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的节点集。

有关如何实现这一目标的任何想法?非常感谢提前。

2 个答案:

答案 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(*))")