ID: 34664 Updated by: [EMAIL PROTECTED] 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 name is just confusing you. saveXML doesn't magically produce well-formed XML from non XML data (i.e. HTML). It just enforces the output is well-formed otherwise issue an error. If you dont know the type of document then check the DOMDocument type: XML_DOCUMENT_NODE - XML data XML_HTML_DOCUMENT_NODE - HTML data and use the correct Save method. The only way to saveXML() can be safely used with HTML is if the HTML is really XHTML (which could be loaded with loadXML() otherwise results will vary. Previous Comments: ------------------------------------------------------------------------ [2005-09-29 13:14:20] bugs dot php dot net at webdevelopers dot cz 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? ------------------------------------------------------------------------ [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... ;-) ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/34664 -- Edit this bug report at http://bugs.php.net/?id=34664&edit=1