2018-03-13 02:35
浏览 31

PHP / XPATH - 找到父母的先知和兄弟,并获得其“儿童”

I've been trying to figure this our for days, but I simply cannot seem to get it to work.

Let's say I have an XML file named test.xml like this:


From PHP, I use SimpleXMLElement to find the node with text BBB.

$xmlStr = file_get_contents('test.xml');
$xml = new SimpleXMLElement($xmlStr);
$res = $xml->xpath('//type[contains(text(), "BBB")]/parent::*');

echo "{$res[0]->name} ({$res[0]->type})";
// Result: B (BBB)

Now, I'd like to find the preceding-sibling node of the parent, and get the child nodes' values like A (AAA), but I simply can't figure out how to do so.

Any help would be great.


图片转代码服务由CSDN问答提供 功能建议

我一直想把它弄清楚这几天,但我似乎无法让它发挥作用。< / p>

假设我有一个名为 test.xml 的XML文件,如下所示:

 &lt; root&gt; \  n&lt; itemList&gt; 
&lt; item&gt; 
&lt; name&gt; A&lt; / name&gt; 
&lt; type&gt; AAA&lt; / type&gt; 
&lt; / item&gt; 
&lt; item&gt; 
&lt; 名称&gt; B&lt; / name&gt; 
&lt; type&gt; BBB&lt; / type&gt; 
&lt; / item&gt; 
&lt; item&gt; 
&lt; name&gt; C&lt; / name&gt; 
&lt; type&gt; CCC&lt;  / type&gt; 
&lt; / item&gt; 
&lt; / itemList&gt; 
&lt; / root&gt; 

从PHP,我使用 SimpleXMLElement < / code>查找带有文本 BBB 的节点。

 $ xmlStr = file_get_contents('test.xml');  
 $ xml = new SimpleXMLElement($ xmlStr); 
 $ res = $ xml-&gt; xpath('// type [contains(text(),“BBB”)] / parent :: *'); 
echo“{$ res [0]  - &g  t; name}({$ res [0]  - &gt; type})“; 
 // //结果:B(BBB)

现在,我 想找到 parent 前兄弟节点,并获得 child 节点的值,如 A(AAA)< / code>,但我根本无法弄清楚如何这样做。



  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题