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