|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-11-10 02:57 UTC] 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(); }}
)
)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 09:00:02 2025 UTC |
Ok, I have got what you mean. 1) I don't really know standart round the cdata section, but MSXML appears to handle such a sections as a nodes... so the structure <Root> <![CDATA[ function fnShow() { } ]]> </Root> will produce Root [XMLElement] (Node that has a child) CDATA [CDATA Section] (Node of the type CDATA) 2) How can you think the operation of parsing/serializing XML should not be the same? If we'll parse with xml_parse_into_structure xml listed below, we will not know after the parsing that it was really CDATA section! So we can not restore xml! This is not right by my opininon. 3) I am writing an wrapper for xml_parse..., a module like you have under the name DOMXML functions. So i really was surprized about the situation after i laid 5 days out for writing an MSXML-like interface... And it is a problem... don't know what to do next...