#32711 [Bgs->Opn]: CDATA elements are not preserved
ID: 32711
User updated by: phpspam at talkingspider dot com
Reported By: phpspam at talkingspider dot com
-Status: Bogus
+Status: Open
Bug Type: DOM XML related
Operating System: Fedora C2
PHP Version: 4.3.9
New Comment:
No, they are NOT identical. It's called a canonical value. Think back
to your computer science education.
http://www.w3.org/TR/2001/REC-xml-c14n-20010315
The official spec for DOM does specify that CDATA nodes are labelled as
such in the DOM. In other words, in the dom, CDATA nodes are CDATA
nodes and text nodes are text nodes, they are not the same thing. So,
for example, you should be able to crawl the dom and spot CDATA nodes.
So, either one of two things are still broken: Either your parsing
function is deciding to convert CDATA into text nodes, in which case,
when the DOM is built, it never has CDATA nodes in it, even though they
are present in the input xml. Or, your output function is deciding to
convert all the CDATA nodes in the DOM into text nodes. In either
case, that's a bug. In perl I can choose to preserve CDATA elements
when I output. In PHP I can't.
http://www.w3schools.com/dom/dom_cdatasection.asp
Previous Comments:
------------------------------------------------------------------------
[2005-04-16 02:21:16] amt@php.net
I don't understand. If you're saying that:
<root><![CDATA[ Hello & Goodbye]></root>
is turned into
<root>Hello & Goodbye</root>
Then this is not a bug. These are identical in XML and the processor
can choose either representation.
It's just like <root></root> vs. <root/>. You cannot control this and
no XML parser should care when consuming them.
------------------------------------------------------------------------
[2005-04-16 01:43:55] sniper@php.net
Try adding sample script which fails first..
------------------------------------------------------------------------
[2005-04-16 01:10:56] phpspam at talkingspider dot com
That is not a realistic response. You already have the latest php 4.x
version installed somewhere, why should I have to install it on my
side? You could do in 5 minutes what would take me 50. You also have
access to all of the bugs that were ever fixed, search for this and if
it's not there then it was never fixed.
------------------------------------------------------------------------
[2005-04-15 14:01:17] sniper@php.net
Thank you for taking the time to report a problem with PHP.
Unfortunately you are not using a current version of PHP --
the problem might already be fixed. Please download a new
PHP version from http://www.php.net/downloads.php
If you are able to reproduce the bug with one of the latest
versions of PHP, please change the PHP version on this bug report
to the version you tested and change the status back to "Open".
Again, thank you for your continued support of PHP.
------------------------------------------------------------------------
[2005-04-15 04:34:01] phpspam at talkingspider dot com
Description:
------------
Read in an xml file that has CDDATA elements using domxml_open_file and
then write it out using DomDocument->dump_file. The CDATA elements get
turned into text elements.
Reproduce code:
---------------
//Read in an xml file that has CDDATA elements using //domxml_open_file
and then write it out using //DomDocument->dump_file. The CDATA
elements get turned into text elements.
Expected result:
----------------
There's no justifiable reason why it should convert CDATA elements to
text elements.
Actual result:
--------------
The CDATA elements get turned into text elements.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32711&edit=1
Thread (9 messages)