无法在php中使用xpath获取值

时间:2011-12-16 17:48:47

标签: php xml xpath

我无法从xml字符串中获取值。 $ query_return_string包含以下字符串:

<?xml version="1.0" encoding="UTF-8"?>
<sparql xmlns="http://www.w3.org/2001/sw/DataAccess/rf1/result">
  <head>
    <variable name="label"/>
  </head>
  <results>
    <result>
      <label>Demo sports 3</label>
    </result>
  </results>
</sparql>

这是php代码:

<?php
if ($query_return_string) {
  $query_return_dom = DOMDocument::loadXML($query_return_string);

  $xpath_dom = new DOMXPath($query_return_dom);

  $xpath = '//label';

  $entries = $xpath_dom->query($xpath);
  dsm($entries->length);
  // /sparql/results/result/label
}
?>

我甚至不打算尝试越过对象来获取值,因为$ entries-&gt; length返回0。 我能做错什么?这看起来很基本。

1 个答案:

答案 0 :(得分:3)

您需要注册命名空间。

$xpath_dom->registerNamespace('sw', 'http://www.w3.org/2001/sw/DataAccess/rf1/result');
$xpath = '//sw:label';