ID: 30321 Updated by: [EMAIL PROTECTED] Reported By: matthias dot hoseit at comline dot de -Status: Open +Status: Bogus Bug Type: DOM XML related Operating System: Windows 2000, Apache 1.3.31 PHP Version: 5.0.2 New Comment:
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php . Previous Comments: ------------------------------------------------------------------------ [2004-10-04 15:32:05] matthias dot hoseit at comline dot de Description: ------------ The function serialize() doesn't work with a DOMDocument object. After you've serialized and unserialized an object of DOMDocument the unserialized object seems to be empty (The object knows that it is a DOMDocument Object, but all data is lost). Reproduce code: --------------- <?PHP //----------------------------------------------Building a working DOMDocument----------------------------------- //create new DOMDocument $domDoc1 = new DOMDocument(); //create some elements $rootElement = $domDoc1->createElement("Element1"); $element2 = $domDoc1->createElement("Element2", "Value2"); //adding element to root $rootElement->appendChild($element2); //adding root to DOM $domDoc1->appendChild($rootElement); //show that DOMDocument is working right now $elements1 = $domDoc1->getElementsByTagName("Element2"); foreach ($elements1 as $val) { echo "TagName = '".$val->tagName."' "; echo "Value = '".$val->nodeValue."'<br>"; } //----------------------------------------------now the strange behavior----------------------------------------- //now serialize DOMObject $serialize1 = serialize($domDoc1); //The serialized DOMObject seems to be empty echo $serialize1."<br>"; //unserialize $unserialize1 = unserialize($serialize1); //----------------------------------------------the error-------------------------------------------------------- //And now there is the error.. $unserialize1 seems to be no DOMDocument or an empty one $elements2 = $unserialize1->getElementsByTagName("Element2"); //You get the error message: Warning: Couldn't fetch DOMDocument in .... //print_r shows an empty object print_r($unserialize1); ?> Expected result: ---------------- I thought, when you unserialize a DOMDocument object you get a DOMDocument object with all data of the original one (NodeLists etc). Actual result: -------------- After unserializing a serialized DOMDocument object you get an empty DOMDocument object. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=30321&edit=1
