#31779 [Asn->WFx]: XML_CDATA_SECTION_NODE is returned as XML_TEXT_NODE

From: Date: Mon, 07 Feb 2005 21:12:15 +0000
Subject: #31779 [Asn->WFx]: XML_CDATA_SECTION_NODE is returned as XML_TEXT_NODE
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-73621@lists.php.net to get a copy of this message
ID: 31779 Updated by: rrichards@php.net Reported By: galg at sphera dot com -Status: Assigned +Status: Wont fix Bug Type: DOM XML related Operating System: Linux PHP Version: 4.3.10 Assigned To: rrichards New Comment: This change was necessary as libxml 2.6 broke a bunch of domxml's xsl stuff. This would require an API change to be able to support loading CDATA. domxml behavior when using libxml 2.6+ and loading a document now converts incoming CDATA to TEXT nodes. This does not affect creating CDATA manually however. Previous Comments: ------------------------------------------------------------------------ [2005-02-06 07:01:13] sniper@php.net Rob, can you please check this out? ------------------------------------------------------------------------ [2005-02-06 00:18:54] galg at sphera dot com It's seems to be a problem with the integration of PHP 4.3.x and libxml2 ver 2.6.x. I've tested the following php5 script on PHP 5.0.2 compiled with libxml2-2.6.11 and it worked as expected: <?php $sXML = <<<XML <?xml version="1.0" encoding="UTF-8"?> <XML_DOC> <![CDATA[ something inside the CDATA. ]]> </XML_DOC> XML; $objXML = new DOMDocument; $objXML->loadXML($sXML); foreach ($objXML->documentElement->childNodes as $child) { echo "Type: " . $child->nodeType . "\t | \t"; echo "Name: " . $child->nodeName; echo "\n"; } ?> The php5 script returns good result: the CDATA section with type 4. Could it be that the problem is an API change in the libxml2 version 2.6.x which wasn't updated in version 4.3.x of php ? The result of the script on my environment is: Type: 3 | Name: #text Type: 4 | Name: #cdata-section Type: 3 | Name: #text Regards, Gal ------------------------------------------------------------------------ [2005-02-05 16:03:04] galg at sphera dot com Made 2 more tests: I've compiled php 4.3.10 with the latest libxml2 ver 2.6.17 and still has the same problem I tried also to compile it agains version libxml2-2.5.11 and it worked as expected. The problem seems to be only with version 2.6.x of libxml2. ------------------------------------------------------------------------ [2005-02-05 14:56:23] galg at sphera dot com I've compiled now the php myself: - I compiled php 4.3.10 with libxml2-2.4.30 the result was ok as i expected to be. - I compiled php 4.3.10 with libxml2 20611 the result was the same i wrote in the bug description. Latest version of libxml2 is :2.6.17. The sources files of the libxml2 are under directory called "old" all new Linux distributions are using libxml2 version 2.6.x. ------------------------------------------------------------------------ [2005-01-31 16:06:24] galg at sphera dot com Description: ------------ When I've used the following code on php 4.3.8: The <![CDATA[ ]> section was returned as XML_CDATA_SECTION_NODE (value 4). When i am running the same code on 4.3.10 its returned as XML_TEXT_NODE (value 3). Reproduce code: --------------- <?php $sXML = <<<XML <?xml version="1.0" encoding="UTF-8"?> <XML_DOC> <![CDATA[ something inside the CDATA. ]]> </XML_DOC> XML; print_r(domxml_xmltree($sXML)); ?> Expected result: ---------------- php 4.3.8 response: ======================= domdocument Object ( [name] => #document [url] => [version] => 1.0 [encoding] => UTF-8 [standalone] => -1 [type] => 9 [compression] => -1 [charset] => 1 [0] => 4 [1] => 138008952 [children] => Array ( [0] => domelement Object ( [type] => 1 [tagname] => XML_DOC [0] => 5 [1] => 138009088 [children] => Array ( [0] => domtext Object ( [type] => 3 [name] => #text [content] => [0] => 6 [1] => 138009160 ) [1] => domcdata Object ( [type] => 4 [content] => something inside the CDATA. [0] => 7 [1] => 138009320 ) [2] => domtext Object ( [type] => 3 [name] => #text [content] => [0] => 8 [1] => 138009416 ) ) ) ) ) Actual result: -------------- php 4.3.10 response: =========================== domdocument Object ( [name] => #document [url] => [version] => 1.0 [encoding] => UTF-8 [standalone] => -1 [type] => 9 [compression] => -1 [charset] => 1 [0] => 4 [1] => 138267176 [children] => Array ( [0] => domelement Object ( [type] => 1 [tagname] => XML_DOC [0] => 5 [1] => 138267304 [children] => Array ( [0] => domtext Object ( [type] => 3 [name] => #text [content] => something inside the CDATA. [0] => 6 [1] => 138258296 ) ) ) ) ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31779&edit=1

« previous php.bugs (#73621) next »