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 
&lt;!-- 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

Reply via email to