[Комментарий преобразован в ответ для удобства тех, кто ищет здесь после.]
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