无法在php中使用xpath获取值

无法在php中使用xpath获取值,php,xml,xpath,Php,Xml,Xpath,从xml字符串中获取值时遇到问题。 $query\u return\u字符串包含以下字符串: <?xml version="1.0" encoding="UTF-8"?> <sparql xmlns="http://www.w3.org/2001/sw/DataAccess/rf1/result"> <head> <variable name="label"/> </head> <results>

从xml字符串中获取值时遇到问题。 $query\u return\u字符串包含以下字符串:

<?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>

示范体育3
这是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
}
?>
query($xpath);
dsm($entries->length);
///sparql/results/result/label
}
?>
我甚至没有费心去检查对象来获取值,因为$entries->length返回0。
我可能做错了什么?这似乎很基本。

您需要注册名称空间

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