Извлечь значение из массива xpath

0

У меня есть следующее, которое печатает 100 - это правильно - однако я должен использовать print_r() что, очевидно, неверно

$dom = new DOMDocument();
$dom->loadHTML('<span class="foo" id="bar" itemprop="price">100</span>');

$xpath = new DOMXPath($dom);

$results = $xpath->evaluate('number(//*[@itemprop="price"])');

print_r($results);'

Итак, как мне получить единственный результат, который равен 100? Я пробовал $results[0] который не работал.

Уверен, это просто, но избивать меня!

  • 1
    Вам не нужно использовать print_r() , я вместо этого print_r() ваш код с помощью echo .
Теги:
xpath

1 ответ

1
Лучший ответ

Используйте метод ->item() для результата для доступа к узлам DOM, возвращаемым вашим запросом XPath. Также вы должны использовать метод query() когда хотите запустить запрос XPath. Я никогда не понимал цели использования функции evaluate().

$xpath = new DOMXPath($dom);

$results = $xpath->query('//*[@itemprop="price"]');

echo $results->item(0)->nodeValue;

DOMXPath-> query() возвращает экземпляр DOMNodeList который вы можете перебирать с помощью foreach() или получить доступ к определенному элементу результата с помощью метода ->item(). Его единственным аргументом является индекс, основанный на 0, в возвращаемом списке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню