Что такое выражение xpath для выбора всех узлов документа?
С учетом этого примера XML:
<div class="header"/>
I содержит три узла: <div>
(элемент), class=
(атрибут) и "header"
(текст).
$doc = new DOMDocument;
$doc->loadXml('<div class="header"/>');
$xpath = new DOMXPath($doc);
Я пытался использовать //node()
:
$xpath->query('//node()');
, который возвращает только все узлы элемента (я полагаю, из-за //
).Есть ли способ добавить другие узлы, такие как атрибуты и текстовые узлы, в значения атрибутов?
Дополнительный пример:
Я могу получить каждый узел с помощью DOMDocument
API, например, чтобы получить текстовый узел со значением атрибута:
$doc = new DOMDocument;
$doc->loadXml('<div class="header"/>');
$class = $doc->documentElement->getAttributeNode('class');
echo $class->childNodes->item(0)->nodeName;
Что дает:
#text
Как получить расширенный набор всех узлов с одним выражением xpath, особенно включаяэтот примерный class
атрибут-узел дочерний текст-узел?