note 91072 added to class.domdocument

From: Date: Sat, 23 May 2009 19:31:31 +0000
Subject: note 91072 added to class.domdocument
Groups: php.notes 
Request: Send a blank email to php-notes+get-155912@lists.php.net to get a copy of this message
This function may help to debug current dom element: <?php function dom_dump($obj) { if ($classname = get_class($obj)) { $retval = "Instance of $classname, node list: \n"; switch (true) { case ($obj instanceof DOMDocument): $retval .= "XPath: {$obj->getNodePath()}\n".$obj->saveXML($obj); break; case ($obj instanceof DOMElement): $retval .= "XPath: {$obj->getNodePath()}\n".$obj->ownerDocument->saveXML($obj); break; case ($obj instanceof DOMAttr): $retval .= "XPath: {$obj->getNodePath()}\n".$obj->ownerDocument->saveXML($obj); //$retval .= $obj->ownerDocument->saveXML($obj); break; case ($obj instanceof DOMNodeList): for ($i = 0; $i < $obj->length; $i++) { $retval .= "Item #$i, XPath: {$obj->item($i)->getNodePath()}\n". "{$obj->item($i)->ownerDocument->saveXML($obj->item($i))}\n"; } break; default: return "Instance of unknown class"; } } else { return 'no elements...'; } return htmlspecialchars($retval); } ?> Example usage: <?php $dom = new DomDocument(); $dom->load('test.xml'); $body = $dom->documentElement->getElementsByTagName('book'); echo '<pre>'.dom_dump($body).'<pre>'; ?> Output: Instance of DOMNodeList, node list: Item #0, XPath: /library/book[1] <book isbn="0345342968"> <title>Fahrenheit 451</title> <author>R. Bradbury</author> <publisher>Del Rey</publisher> </book> Item #1, XPath: /library/book[2] <book isbn="0048231398"> <title>The Silmarillion</title> <author>J.R.R. Tolkien</author> <publisher>G. Allen &amp; Unwin</publisher> </book> Item #2, XPath: /library/book[3] <book isbn="0451524934"> <title>1984</title> <author>G. Orwell</author> <publisher>Signet</publisher> </book> Item #3, XPath: /library/book[4] <book isbn="031219126X"> <title>Frankenstein</title> <author>M. Shelley</author> <publisher>Bedford</publisher> </book> Item #4, XPath: /library/book[5] <book isbn="0312863551"> <title>The Moon Is a Harsh Mistress</title> <author>R. A. Heinlein</author> <publisher>Orb</publisher> </book> ---- Server IP: 88.81.245.102 (proxied: 91.196.196.205 1.0 localhost.ua.elro.com:3128 (squid/2.5.STABLE14)) Probable Submitter: 77.244.45.170 ---- Manual Page -- http://www.php.net/manual/en/class.domdocument.php Edit -- https://master.php.net/note/edit/91072 Del: integrated -- https://master.php.net/note/delete/91072/integrated Del: useless -- https://master.php.net/note/delete/91072/useless Del: bad code -- https://master.php.net/note/delete/91072/bad+code Del: spam -- https://master.php.net/note/delete/91072/spam Del: non-english -- https://master.php.net/note/delete/91072/non-english Del: in docs -- https://master.php.net/note/delete/91072/in+docs Del: other reasons-- https://master.php.net/note/delete/91072 Reject -- https://master.php.net/note/reject/91072 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#155912) next »