1--TEST-- 2Test 1: Accessing single node 3--SKIPIF-- 4<?php require_once('skipif.inc'); ?> 5--FILE-- 6<?php 7require_once("dom_test.inc"); 8 9echo "Test 1: accessing single nodes from php\n"; 10$dom = new domDocument; 11$dom->loadxml($xmlstr); 12if(!$dom) { 13 echo "Error while parsing the document\n"; 14 exit; 15} 16 17// children() of of document would result in a memleak 18//$children = $dom->children(); 19//print_node_list($children); 20 21echo "--------- root\n"; 22$rootnode = $dom->documentElement; 23print_node($rootnode); 24 25echo "--------- children of root\n"; 26$children = $rootnode->childNodes; 27print_node_list($children); 28 29// The last node should be identical with the last entry in the children array 30echo "--------- last\n"; 31$last = $rootnode->lastChild; 32print_node($last); 33 34// The parent of this last node is the root again 35echo "--------- parent\n"; 36$parent = $last->parentNode; 37print_node($parent); 38 39// The children of this parent are the same children as one above 40echo "--------- children of parent\n"; 41$children = $parent->childNodes; 42print_node_list($children); 43 44echo "--------- creating a new attribute\n"; 45//This is worthless 46//$attr = $dom->createAttribute("src", "picture.gif"); 47//print_r($attr); 48 49//$rootnode->set_attributeNode($attr); 50$attr = $rootnode->setAttribute("src", "picture.gif"); 51$attr = $rootnode->getAttribute("src"); 52print_r($attr); 53print "\n"; 54 55echo "--------- Get Attribute Node\n"; 56$attr = $rootnode->getAttributeNode("src"); 57print_node($attr); 58 59echo "--------- Remove Attribute Node\n"; 60$attr = $rootnode->removeAttribute("src"); 61print "Removed " . $attr . " attributes.\n"; 62 63echo "--------- attributes of rootnode\n"; 64$attrs = $rootnode->attributes; 65print_node_list($attrs); 66 67echo "--------- children of an attribute\n"; 68$children = $attrs->item(0)->childNodes; 69print_node_list($children); 70 71echo "--------- Add child to root\n"; 72$myelement = new domElement("Silly", "Symphony"); 73$newchild = $rootnode->appendChild($myelement); 74print_node($newchild); 75print $dom->saveXML(); 76print "\n"; 77 78echo "--------- Find element by tagname\n"; 79echo " Using dom\n"; 80$children = $dom->getElementsByTagname("Silly"); 81print_node_list($children); 82 83echo " Using elem\n"; 84$children = $rootnode->getElementsByTagName("Silly"); 85print_node_list($children); 86 87echo "--------- Unlink Node\n"; 88print_node($children->item(0)); 89$rootnode->removeChild($children->item(0)); 90print_node_list($rootnode->childNodes); 91print $dom->savexml(); 92 93echo "--------- Find element by id\n"; 94print ("Not implemented\n"); 95 96echo "--------- Check various node_name return values\n"; 97print ("Not needed\n"); 98 99?> 100--EXPECT-- 101Test 1: accessing single nodes from php 102--------- root 103Node Name: chapter 104Node Type: 1 105Num Children: 4 106 107--------- children of root 108Node Name: title 109Node Type: 1 110Num Children: 1 111Node Content: Title 112 113Node Name: #text 114Node Type: 3 115Num Children: 0 116Node Content: 117 118Node Name: para 119Node Type: 1 120Num Children: 7 121 122Node Name: #text 123Node Type: 3 124Num Children: 0 125Node Content: 126 127--------- last 128Node Name: #text 129Node Type: 3 130Num Children: 0 131Node Content: 132 133--------- parent 134Node Name: chapter 135Node Type: 1 136Num Children: 4 137 138--------- children of parent 139Node Name: title 140Node Type: 1 141Num Children: 1 142Node Content: Title 143 144Node Name: #text 145Node Type: 3 146Num Children: 0 147Node Content: 148 149Node Name: para 150Node Type: 1 151Num Children: 7 152 153Node Name: #text 154Node Type: 3 155Num Children: 0 156Node Content: 157 158--------- creating a new attribute 159picture.gif 160--------- Get Attribute Node 161Node Name: src 162Node Type: 2 163Num Children: 1 164Node Content: picture.gif 165 166--------- Remove Attribute Node 167Removed 1 attributes. 168--------- attributes of rootnode 169Node Name: language 170Node Type: 2 171Num Children: 1 172Node Content: en 173 174--------- children of an attribute 175Node Name: #text 176Node Type: 3 177Num Children: 0 178Node Content: en 179 180--------- Add child to root 181Node Name: Silly 182Node Type: 1 183Num Children: 1 184Node Content: Symphony 185 186<?xml version="1.0" standalone="yes"?> 187<!DOCTYPE chapter SYSTEM "/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd" [ 188<!ENTITY sp "spanish"> 189]> 190<!-- lsfj --> 191<chapter language="en"><title language="en">Title</title> 192<para language="ge"> 193&sp; 194<!-- comment --> 195<informaltable language="&sp;kkk"> 196<tgroup cols="3"> 197<tbody> 198<row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row> 199<row><entry>a2</entry><entry>c2</entry></row> 200<row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row> 201</tbody> 202</tgroup> 203</informaltable> 204</para> 205<Silly>Symphony</Silly></chapter> 206 207--------- Find element by tagname 208 Using dom 209Node Name: Silly 210Node Type: 1 211Num Children: 1 212Node Content: Symphony 213 214 Using elem 215Node Name: Silly 216Node Type: 1 217Num Children: 1 218Node Content: Symphony 219 220--------- Unlink Node 221Node Name: Silly 222Node Type: 1 223Num Children: 1 224Node Content: Symphony 225 226Node Name: title 227Node Type: 1 228Num Children: 1 229Node Content: Title 230 231Node Name: #text 232Node Type: 3 233Num Children: 0 234Node Content: 235 236Node Name: para 237Node Type: 1 238Num Children: 7 239 240Node Name: #text 241Node Type: 3 242Num Children: 0 243Node Content: 244 245<?xml version="1.0" standalone="yes"?> 246<!DOCTYPE chapter SYSTEM "/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd" [ 247<!ENTITY sp "spanish"> 248]> 249<!-- lsfj --> 250<chapter language="en"><title language="en">Title</title> 251<para language="ge"> 252&sp; 253<!-- comment --> 254<informaltable language="&sp;kkk"> 255<tgroup cols="3"> 256<tbody> 257<row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row> 258<row><entry>a2</entry><entry>c2</entry></row> 259<row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row> 260</tbody> 261</tgroup> 262</informaltable> 263</para> 264</chapter> 265--------- Find element by id 266Not implemented 267--------- Check various node_name return values 268Not needed 269