如何通过xpath排除某些关键字和ID

时间:2018-07-18 10:46:20

标签: xpath

我有xml文件,其中有很多产品。并非我要用于导入的所有对象。通过使用XPATH,我需要从导入中排除包含特定名称的所有项目:lens

<items>
<item>

 <id>12612991</id>
 <name>Polarized Lens</name>
 <description></description>
 <video>link</video>
 <status>expired</status>
 <price>0</price>
 <currency></currency>

</item>

<item>

 <id>12612921</id>
 <name>Polarized glass</name>
 <description>asdf</description>
 <video>link</video>
 <status>expired</status>
 <price>0</price>
 <currency></currency>

</item>
</items>

我正在尝试使用此

//*[not(contains(name(),'Lens'))]

因此,将仅导入两个项目中的一个,在这种情况下-> Polarized glass

我还要尝试从导入中排除具有特定ID的所有商品

//*[not(contains(ID(),'12612921,12612926,12612924'))]

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试在XPath下获取所需的输出:

<xs:complexType>
  <xs:sequence>        
    <xs:element maxOccurs="unbounded" name="property">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:string">
            <xs:attribute name="label" type="xs:string" use="required" />
            <xs:attribute name="name" type="xs:string" use="required" />
            <xs:attribute name="units" type="xs:string" use="required" />
            <xs:attribute name="sourcetype" type="xs:string" use="required" />
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>        
  </xs:sequence>
</xs:complexType>

如果您使用XPath 1.0:

//item[not(contains(name/text(), 'Lens')) and not(id=('12612921', '12612926', '12612924'))]