Не удалось получить значение с помощью xpath в php - PullRequest
1 голос
/ 16 декабря 2011

У меня проблемы с получением значения из строки 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
}
?>

Я даже не пытаюсь перебрать объект, чтобы получить значение, потому что$ records-> length возвращает 0. Что я могу сделать не так?Это кажется довольно простым.

1 Ответ

3 голосов
/ 16 декабря 2011

Вам необходимо зарегистрировать пространство имен.

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

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...