使用带有SimpleXMLElement的xpath返回空白结果?

时间:2012-09-07 01:31:11

标签: php xpath simplexml

XML:

<A>
  <B type="source">
    <C>
      <D>
        <E ref="description">my_desc</E>
        <E>Some other E</E>
      </D>
    </C>
  </B>
</A>

PHP:

$doc = new SimpleXMLElement('URL.xml', null, true);
$path = $doc->xpath('A/B[@type="source"]/C/D/E[@ref="description"]');
var_dump ($path);

返回:

Array
(
)

最终,我试图通过<E>获得ref="description"的内在价值。我究竟做错了什么?遵循以下指南:http://php.net/simplexmlelement.xpath

1 个答案:

答案 0 :(得分:0)

使用您提供的XML,以下代码将打印出E:

的字符串值
$doc = new SimpleXMLElement('URL.xml', null, true);
$path = $doc->xpath('/A/B[@type="source"]/C/D/E[@ref="description"]');
echo $path[0];

您需要使用/开始查询以指定文档根目录。

你也可以查询// E [@ref =&#34; description&#34;]来找到你想要的所有E元素。