什麼是xpath表達式來選擇文檔的所有節點?如何使用單個DOMXpath表達式選擇DOMDocument的所有節點?
鑑於此示例XML:
<div class="header"/>
我包含三個節點:<div>
(元素),class=
(屬性)和"header"
(文本)。
$doc = new DOMDocument;
$doc->loadXml('<div class="header"/>');
$xpath = new DOMXPath($doc);
我試圖與//node()
:
$xpath->query('//node()');
其中僅返回所有元素節點(I假設由於//
)。有沒有辦法在屬性值中添加其他節點,如屬性和文本節點?
附加例如:
我可以通過使用DOMDocument
API獲得的每個節點,例如獲得屬性值的文本節點:
$doc = new DOMDocument;
$doc->loadXml('<div class="header"/>');
$class = $doc->documentElement->getAttributeNode('class');
echo $class->childNodes->item(0)->nodeName;
其中給出:
#text
如何獲取所有節點的超一個XPath表達式,特別是包括示範性的class
屬性的子節點文本-節點?
我現在用'做// * | // @ *'將選擇所有元素和屬性,但不會選擇屬性值。我遺漏了// text(),因爲它在示例XML中沒有什麼不同。所以你的建議可能是朝着正確方向邁出的一步。 – hakre
我不認爲你可以自己獲得屬性值。 – greut