ID: 34664 User updated by: bugs dot php dot net at webdevelopers dot cz Reported By: bugs dot php dot net at webdevelopers dot cz Status: Bogus Bug Type: DOM XML related Operating System: Linux version 2.6.6 PHP Version: 5.0.5 New Comment:
The bug is that I have a DOM document that was imported from HTML (actually I'm having the object that handles the DOM and I may not be aware of the way how it was created...). When I have valid DOM document then I expect (or I thought that I can expect) that I'll produce valid XML using the method $d->saveXML() and the result can be loaded again without problem with loadXML()... This is not the true. Following function may fail under certain circumstances when the DOMDocument was created using loadHTML(): function test(DOMDocument $d) { echo DOMDocument::loadXML($d->saveXML()); } I'm not usre if it is not confusing if the programmer cannot be sure that the saveXML() is not compatible with loadXML()... --- Yesterday when I was playing with loadHTML() and then using the saveXML() it even resulted in XML like this <html xmlns="someNS" xmlns="someNS">...</html> - it has duplicite attribute @xmlns which is not a XML so saveXML() is more saveSometimesXML(). Obviosly when importing the HTML then the @xmlns is treated as common attribute and on saving there is added namespace declaration alongside @xmlns with existing @xmlns attribute. It looks like saveXML() is not producing XML despite the name of the function. I think it is a bug. Don't you think? Or is it meant functionality and just the function's name is confusing me? Previous Comments: ------------------------------------------------------------------------ [2005-09-28 23:02:32] [EMAIL PROTECTED] 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 HTML is not XML (hence the different I/O methods) so you cant expect things to always be fixed when trying to do a conversion like that. ------------------------------------------------------------------------ [2005-09-28 05:28:03] [EMAIL PROTECTED] What exactly is the bug here? You can't have -- in an HTML/XML comment and the warning message is telling you exactly that. Remove the a-- and it works just fine. ------------------------------------------------------------------------ [2005-09-27 22:02:17] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.0-win32-latest.zip ------------------------------------------------------------------------ [2005-09-27 21:43:21] bugs dot php dot net at webdevelopers dot cz Sorry for the incorrect bug's name: "invalid feof() results due to Zend's caching of user stream wrappers" My browser's autocompletion prefilled it and I didn't noticed it... ;-) ------------------------------------------------------------------------ [2005-09-27 21:38:32] bugs dot php dot net at webdevelopers dot cz Description: ------------ HTML imported using DOMDocument::loadHTML() is not saved as valid XML using DOMDocument::saveXML() Reproduce code: --------------- header('Content-Type: text/plain; charset=UTF-8'); $d=new DOMDocument('1.0', 'UTF-8'); if ($d->loadHTML('<html><body><script><!-- var a=1; a--; --></script></body></html>')) { echo "loadHTML: OK\n"; echo $d->loadXML($d->saveXML()); } Expected result: ---------------- loadHTML: OK 1 Actual result: -------------- loadHTML: OK <br /> <b>Warning</b>: DOMDocument::loadXML() [<a href='function.loadXML'>function.loadXML</a>]: Comment not terminated <!-- var a=1; a in Entity, line: 3 in <b>test.php</b> on line <b>9</b><br /> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=34664&edit=1