Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XPath通过在另一个节点中指定的表达式查找节点_Xml_Xpath_Xpath 1.0 - Fatal编程技术网

Xml XPath通过在另一个节点中指定的表达式查找节点

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

我必须通过为每个项目输入一个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>

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是因为他是第一个,这更符合我的思维方式。我不知道这样的建设是可能的-这打开了新的可能性。。。谢谢