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
使用php的xpath和xquery_Php_Xpath - Fatal编程技术网

使用php的xpath和xquery

使用php的xpath和xquery,php,xpath,Php,Xpath,我有以下格式的xml文件 <pages> <contents> <menu><![CDATA[menu1]]></menu> <texts><![CDATA[content1]]></texts> </contents> <contents> <menu><![CDATA[menu2]]></menu>

我有以下格式的xml文件

<pages>
  <contents>
    <menu><![CDATA[menu1]]></menu>
    <texts><![CDATA[content1]]></texts>
  </contents>

  <contents>
    <menu><![CDATA[menu2]]></menu>
    <texts><![CDATA[content2]]></texts>
  </contents>

  <contents>
    <menu><![CDATA[menu3]]></menu>
    <texts><![CDATA[content3]]></texts>
  </contents>
</pages>

这里我想传递一个带有菜单节点值的参数,例如传递了menu1,我想得到文本节点,即content1左右

我如何使用php/xquery做到这一点

谢谢退房

/pages/contents/menu[text()

使用类似的方法(我不懂PHP):

string(/pages/content[menu = $foo]/texts)

其中,
$foo
变量是需要“text”的
菜单
元素的字符串值。

他没有在菜单元素中查找文本。他想要
text
元素中的文本,它是
菜单的兄弟姐妹
@shiplu.mokadd.im:感谢您澄清这一点——我已经相应地修改了答案。
/pages/content[menu = $foo]/texts/text()
string(/pages/content[menu = $foo]/texts)