Xml XPath通过在另一个节点中指定的表达式查找节点
我必须通过为每个项目输入一个XPath(1.0)来创建XML映射;工作正常,直到现在我得到了如下XML文档:Xml XPath通过在另一个节点中指定的表达式查找节点,xml,xpath,xpath-1.0,Xml,Xpath,Xpath 1.0,我必须通过为每个项目输入一个XPath(1.0)来创建XML映射;工作正常,直到现在我得到了如下XML文档: <PARTIES> <PARTY> <PARTY_ID type="supplier_specific">12345</PARTY_ID> <ADDRESS> <N
<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>
12345
A.
54321
B
传送
C
12345
54321
传送
其思想是:如果您想要交付地址,那么查看,从那里获取标识符(“交付”),并查找具有相同标识符的。结果是在同一水平上取得了成功
那么,如果我想知道传递地址的名称,那么如何使用单个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中失败的尝试,并添加预期的输出,因为textUPPER CASE打断了我的眼睛-对不起upper CASE,并没有发明这个:)机器人解决方案很好-我选择@Gilleskuenot是因为他是第一个,这更符合我的思维方式。我不知道这样的建设是可能的-这打开了新的可能性。。。谢谢