通过在另一个节点内指定的表达式查找节点的 XPath
XPath to find a node by expression specified within another node
我必须通过为每个项目输入一个单一的 XPath (1.0) 来创建一个 XML 映射;工作正常,直到我现在得到一个像这样的 XML 文档:
<PARTIES>
<PARTY>
<PARTY_ID type="supplier_specific">12345</PARTY_ID>
<ADDRESS>
<NAME>A</NAME>
</ADDRESS>
</PARTY>
<PARTY>
<PARTY_ID type="buyer_specific">54321</PARTY_ID>
<ADDRESS>
<NAME>B</NAME>
</ADDRESS>
</PARTY>
<PARTY>
<PARTY_ID>delivery</PARTY_ID>
<ADDRESS>
<NAME>C</NAME>
</ADDRESS>
</PARTY>
<PARTIES_REFERENCE>
<BUYER_IDREF type="supplier_specific">12345</BUYER_IDREF>
<SUPPLIER_IDREF type="buyer_specific">54321</SUPPLIER_IDREF>
<DELIVERY_IDREF>delivery</DELIVERY_IDREF>
</PARTIES_REFERENCE>
</PARTIES>
想法是:如果您想要送货地址,请查看 ,从那里获取标识符 ("delivery") 并查找 具有相同的标识符。结果是同一级别的 。
所以,如果我想知道送货地址的 - 如何使用 single XPath 1.0 表达式到达那里?我已经做了很多映射,但这似乎是下一个级别,如果可能的话。
像这样:
/PARTIES/PARTY[./PARTY_ID=/PARTIES/PARTIES_REFERENCE/DELIVERY_IDREF/text()]/ADDRESS/NAME/text()
我想到了什么:
//PARTY_ID[text()=string(//DELIVERY_IDREF)]/following::NAME[1]/text()
输出:C
我必须通过为每个项目输入一个单一的 XPath (1.0) 来创建一个 XML 映射;工作正常,直到我现在得到一个像这样的 XML 文档:
<PARTIES>
<PARTY>
<PARTY_ID type="supplier_specific">12345</PARTY_ID>
<ADDRESS>
<NAME>A</NAME>
</ADDRESS>
</PARTY>
<PARTY>
<PARTY_ID type="buyer_specific">54321</PARTY_ID>
<ADDRESS>
<NAME>B</NAME>
</ADDRESS>
</PARTY>
<PARTY>
<PARTY_ID>delivery</PARTY_ID>
<ADDRESS>
<NAME>C</NAME>
</ADDRESS>
</PARTY>
<PARTIES_REFERENCE>
<BUYER_IDREF type="supplier_specific">12345</BUYER_IDREF>
<SUPPLIER_IDREF type="buyer_specific">54321</SUPPLIER_IDREF>
<DELIVERY_IDREF>delivery</DELIVERY_IDREF>
</PARTIES_REFERENCE>
</PARTIES>
想法是:如果您想要送货地址,请查看
所以,如果我想知道送货地址的
像这样:
/PARTIES/PARTY[./PARTY_ID=/PARTIES/PARTIES_REFERENCE/DELIVERY_IDREF/text()]/ADDRESS/NAME/text()
我想到了什么:
//PARTY_ID[text()=string(//DELIVERY_IDREF)]/following::NAME[1]/text()
输出:C