#26188 [Opn->Bgs]: Section CDATA is not recognized by the parser
| From: | moriyoshi@php.net | Date: | Mon, 10 Nov 2003 11:36:55 +0000 |
| Subject: | #26188 [Opn->Bgs]: Section CDATA is not recognized by the parser | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-50195@lists.php.net to get a copy of this message | ||
ID: 26188
Updated by: moriyoshi@php.net
Reported By: sergey at bds dot ru
-Status: Open
+Status: Bogus
Bug Type: XML related
Operating System: Windows
PHP Version: 4.3.2
New Comment:
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
The CDATA section and the ordinary text node are no different
semantically... How come you think the CDATA section should be
represented as a separate node...
Previous Comments:
------------------------------------------------------------------------
[2003-11-10 03:04:20] sergey at bds dot ru
In a "Expected result" section the second array with the supposed CDATA
Section should have value of the "tag" attribute "#cdata-section"
------------------------------------------------------------------------
[2003-11-10 02:57:14] sergey at bds dot ru
Description:
------------
When parse_xml_into_structure parses an xml, it seems for me that it
skips the CDATA section.
Parser assumes the CDATA node as an usual value of its node.
But, it should be actually parsed into a new child node - CDATA section
Reproduce code:
---------------
test.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<PlaceHolderList>
<![CDATA[
function fnShow()
{
}
]]>
</PlaceHolderList>
test.php
$strXml = implode("", file("test.xml"));
$objParser = xml_parser_create();
xml_parser_set_option($objParser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($objParser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($objParser, $strXml, $arrParserValues,
$arrParserIndexes);
print_r($arrParserValues);
Expected result:
----------------
Array
(
[0] => Array
(
[tag] => PlaceHolderList
[type] => complete
[level] => 1
[value] =>
[1] => Array
(
[tag] => PlaceHolderList
[type] => cdata
[level] => 2
[value] => function fnShow(){ var aAll = document.all;
var e = new Enumerator(aAll); while (!e.atEnd()) {> alert
(e.item()); e.moveNext(); }}
)
)
Actual result:
--------------
Array
(
[0] => Array
(
[tag] => PlaceHolderList
[type] => complete
[level] => 1
[value] => function fnShow(){ var aAll = document.all;
var e = new Enumerator(aAll); while (!e.atEnd()) {> alert
(e.item()); e.moveNext(); }}
)
)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26188&edit=1