使用Xpath表达式检查引用其他元素的xml元素

时间:2015-12-14 11:20:52

标签: xml xpath referential-integrity

想象一下,我有一个XML结构:

<root>
    <products>
        <product>
            <name>myproduct 1</name>
        </product>
        <product>
            <name>myproduct 2</name>
        </product>
    </products>
    <invoices>
        <invoice number="1">
            <product>myproduct 1</product>
        </invoice>
        <invoice number="2">
            <product>myproduct 3</product>
        </invoice>
    </invoices>
</root>

我需要一个XPath表达式来仅查找产品元素所在的发票元素(因此发票中的产品与产品名称相匹配)。因此,在这种情况下,它会找到发票1,但不会找到发票2。

这可能吗?

1 个答案:

答案 0 :(得分:1)

当然有可能:

//invoice[product = /root/products/product/name]

或:

//invoice[product = //products/product/name]

<强> xpathtester demo

输出

<invoice number="1"> 
  <product>myproduct 1</product> 
</invoice>