Dom Xpath проблема - PullRequest
       5

Dom Xpath проблема

2 голосов
/ 05 февраля 2011

Я не понимаю, почему я не могу получить ничего с XPath.Что не так?

<code><?php
$dom_object = new DOMDocument();
$domxpath_object = new DOMXpath($dom_object);

$dom_object->loadXML('<?xml version="1.0" encoding="UTF-8" ?><databases><foo>bar</foo></databases>');
$domnodelist_object = $domxpath_object->query('/');
echo '<pre>' . print_r($domnodelist_object->item(0)->hasChildNodes(), true) . '
';// output: nothing print_r ($ dom_object-> childNodes-> item (0) -> nodeValue);// строка вывода?>

Спасибо.

1 Ответ

1 голос
/ 21 февраля 2011

[Комментарий преобразован в ответ для удобства тех, кто ищет здесь после.]

DOMXpath, кажется, устанавливает его состояние во время создания, а не ссылки на DOMDocument он был создан из.Обновления DOMDocument, в этом случае вызов ->loadXML() не выполняются до объекта DOMXpath.

Поэтому необходимо загрузить XML, создать полное дерево DOM, прежде чем создавать экземплярОбъект XPath.

<?php
$dom_object = new DOMDocument();    
$dom_object->loadXML('<?xml version="1.0" encoding="UTF-8" ?><databases><foo>bar</foo></databases>');

// XPath created from DOMDocument, after loading
$domxpath_object = new DOMXpath($dom_object);

$domnodelist_object = $domxpath_object->query('/');

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