1

我有一个 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、分类、版本、MakeEffectiveDate、ExpirationDate、MaterialID、Material Description、Quantity、UOM 和 Example。

关于如何做到这一点的任何想法?提前谢谢了。

4

2 回答 2

1

您可以使用以下filter()方法:

var $bachelors = $(XML).find('*').filter(function() {
                   return $(this).children().length === 0
                 })
于 2012-08-12T15:58:03.290 回答
0

这是因为这些元素都不是:empty. :empty表示没有子节点的元素,例如<elem></elem>. 尝试:not(:has(*))

$(XML).find(":not(:has(*))")
于 2012-08-12T16:08:47.743 回答