1--TEST-- 2DOM\XMLDocument interaction with XPath 3--EXTENSIONS-- 4dom 5--FILE-- 6<?php 7 8$dom = DOM\XMLDocument::createFromString(<<<XML 9<?xml version="1.0"?> 10<root> 11 <p>hi</p> 12 <element xmlns="urn:e" xmlns:a="urn:a"> 13 <?target data?> 14 <!-- comment --> 15 </element> 16</root> 17XML); 18 19$xpath = new DOM\XPath($dom); 20 21echo "--- Get data of the paragraph ---\n"; 22 23$result = $xpath->query("//p"); 24var_dump($result); 25var_dump($result->item(0)->textContent); 26 27$result = $xpath->evaluate("//p"); 28var_dump($result); 29var_dump($result->item(0)->textContent); 30 31var_dump($xpath->evaluate("string(//p)")); 32var_dump($xpath->evaluate("string-length(//p)")); 33var_dump($xpath->evaluate("boolean(//p)")); 34 35echo "--- Get data of special nodes ---\n"; 36 37$result = $xpath->query("//*/comment()|//*/processing-instruction()"); 38foreach ($result as $item) { 39 var_dump(get_class($item)); 40 var_dump($item->textContent); 41} 42 43echo "--- Get a namespace node ---\n"; 44 45// Namespace nodes don't exist in modern day DOM. 46var_dump($xpath->evaluate("//*/namespace::*")); 47 48?> 49--EXPECT-- 50--- Get data of the paragraph --- 51object(DOM\NodeList)#4 (1) { 52 ["length"]=> 53 int(1) 54} 55string(2) "hi" 56object(DOM\NodeList)#5 (1) { 57 ["length"]=> 58 int(1) 59} 60string(2) "hi" 61string(2) "hi" 62float(2) 63bool(true) 64--- Get data of special nodes --- 65string(25) "DOM\ProcessingInstruction" 66string(4) "data" 67string(11) "DOM\Comment" 68string(9) " comment " 69--- Get a namespace node --- 70object(DOM\NodeList)#5 (1) { 71 ["length"]=> 72 int(0) 73} 74