ID:               40105
 User updated by:  fletch at pobox dot com
 Reported By:      fletch at pobox dot com
-Status:           Bogus
+Status:           Open
 Bug Type:         DOM XML related
 Operating System: linux
 PHP Version:      5.2.0
 New Comment:

I'm aware of the differences in escaping between createElement() and
createTextNode() and neither one does what I describe.  createElement()
unescapes NCRs (as I described in the original description) while
createTextNode() escapes values.

In a nutshell, using createElement() I end up with "<root> </root>",
and using createTextNode() I end up with "<root>&amp;#0160;</root>".

There is no way to generate the literal XML "<root>&#0160;</root>"
using either createElement() OR createTextNode()


Previous Comments:
------------------------------------------------------------------------

[2007-01-12 07:44:43] [EMAIL PROTECTED]

It was  decided to leave it as it is (for backwards 
compatibility reasons)

use $dom->createTextNode() for the behaviour you want.

------------------------------------------------------------------------

[2007-01-11 23:28:30] fletch at pobox dot com

There's a trivial error in the expected result text: the string length
produced by var_dump() should be 65, not 59.

------------------------------------------------------------------------

[2007-01-11 23:26:27] fletch at pobox dot com

Description:
------------
DOMDocument->createElement() unescapes any numeric character references
(NCRs) contained in the value passed to its optional second parameter. 
It should preserve the value as passed.

Reproduce code:
---------------
<?php
$dom = new DOMDocument( "1.0", 'UTF-8' );
$dom->appendChild( $dom->createElement( 'root', '&amp;&#0160;' ) );
var_dump( trim( $dom->saveXML() ) );
?>

Expected result:
----------------
string(59) "<?xml version="1.0" encoding="UTF-8"?>
<root>&amp;&#0160;</root>"

Actual result:
--------------
string(59) "<?xml version="1.0" encoding="UTF-8"?>
<root>&amp; </root>"


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=40105&edit=1

Reply via email to