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

How to apply the :empty selector to an XML document

本文关键字:应用于 XML 文档 选择器 empty      更新时间:2023-09-26

我有一个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,过期日期,MaterialID,材料描述,数量,UOM和示例的节点集。

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

您可以使用 filter() 方法:

var $bachelors = $(XML).find('*').filter(function() {
                   return $(this).children().length === 0
                 })

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

$(XML).find(":not(:has(*))")