Php XML xPath在一个查询中获取父属性和子结果
我有以下XML:Php XML xPath在一个查询中获取父属性和子结果,php,xml,xpath,Php,Xml,Xpath,我有以下XML: <Parent> <Children name='RandomValueIdontKnow'> <x>1</x> <x>2</x> <x>3</x> <x>4</x> </Children> </Parent> 但是它只会产生name属性值,而忽略x的值。 我试图从xml中删除Parent,并执行以
<Parent>
<Children name='RandomValueIdontKnow'>
<x>1</x>
<x>2</x>
<x>3</x>
<x>4</x>
</Children>
</Parent>
但是它只会产生name
属性值,而忽略x
的值。我试图从xml中删除
Parent
,并执行以下查询:
xpath("@name|x"); //grabs name's attribute value and all of the x's values
它工作得很好,出于某种原因,当有父母或其他什么的时候它就会停止。。这让我有点困惑对于XPath 1.0,请尝试:
(/*/Children/@name|/*/Children/x)
对于XPath 2.0,请尝试:
/*/Children/(@name|x)
x
不是根节点,因此您必须重复子节点
:
"Children/@name|Children/x"
如果有几种类型的节点,我如何知道结果x的名称?我是说。。有没有办法让@name在结果中的数组中包含x?没有。没有这样的层次结构,属性如何包含真正的节点(顺便说一句:Daniel的答案更好,我接受这个答案…)。尽管,另一个选择可能只是选择
子节点[@name]
,只需检索子节点中的名称和x
节点,就可以保持一切整洁。
"Children/@name|Children/x"