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_Kettle_Spoon - Fatal编程技术网

Xml 在壶穴/勺子中通过XPath提取正确的父属性值

Xml 在壶穴/勺子中通过XPath提取正确的父属性值,xml,xpath,kettle,spoon,Xml,Xpath,Kettle,Spoon,我有以下XML,并使用壶勺获取XML数据来提取: <Company cname="ABC"> <Staffs> <Manager mname="John"> <Subordinate sname="Apple"> <PhoneNo>11111111</PhoneNo> </Subordinate> <Subordinate sn

我有以下XML,并使用壶勺获取XML数据来提取:

<Company cname="ABC">
<Staffs>
    <Manager mname="John">
        <Subordinate sname="Apple">
            <PhoneNo>11111111</PhoneNo>
        </Subordinate>
        <Subordinate sname="Becky">
            <PhoneNo>22222222</PhoneNo>
        </Subordinate>
    </Manager>
    <Manager mname="Peter">
        <Subordinate sname="Cathy">
            <PhoneNo>33333333</PhoneNo>
        </Subordinate>
        <Subordinate sname="Doris">
            <PhoneNo>44444444</PhoneNo>
        </Subordinate>
    </Manager>
</Staffs>
</Company>
请帮助,如何获得正确的经理姓名

------------------------
|#|Mname|Sname|PhoneNo |
|-+-----+-----+--------|
|1|John |Apple|11111111|
|2|John |Becky|22222222|
|3|Peter|Cathy|33333333|
|4|Peter|Doris|44444444|
------------------------

我对水壶或勺子一无所知,但我认为,如果你循环使用“从属”(因此从属是一个实际的上下文),你应该使用以下XPath:

Mname:
parent::Manager/@Mname

Sname:
@Sname


PhoneNo:
PhoneNo

我不知道关于水壶或勺子的任何事情,但我认为如果你循环使用“从属”(因此从属是一个实际上下文),你应该使用以下XPath:

Mname:
parent::Manager/@Mname

Sname:
@Sname


电话号码:
PhoneNo

谢谢您的建议。它的工作原理是将Mname替换为父项::*[name()='Manager']/*[name()='Mname']实际上,您只需要一个../:../Manager/*[name()='Mname']就可以了。谢谢您的建议。它的工作原理是将Mname替换为父项::*[name()='Manager']/@*[name()='Mname']实际上,您只需要一个../:../Manager/@*[name()='Mname']就可以了。
------------------------
|#|Mname|Sname|PhoneNo |
|-+-----+-----+--------|
|1|John |Apple|11111111|
|2|John |Becky|22222222|
|3|Peter|Cathy|33333333|
|4|Peter|Doris|44444444|
------------------------