Edit report at https://bugs.php.net/bug.php?id=10994&edit=1
ID: 10994 Comment by: qing0088 at hotmail dot com Reported by: dennis at svitonline dot com Summary: DOMXML CDATA Node Bug Status: Closed Type: Bug Package: DOM XML related Operating System: Winnt PHP Version: 4.0.5 Block user comment: N Private report: N New Comment: http://www.officialbuffalobillsshop.com/ryan-fitzpatrick-jersey-c-13_32.html Ryan Fitzpatrick Jersey http://www.officialbuffalobillsshop.com/steve-johnson-jersey-c-13_30.html Stevie Johnson Jersey http://www.officialbuffalobillsshop.com/thurman-thomas-jersey-c-13_21.html Thurman Thomas Throwback Jersey Previous Comments: ------------------------------------------------------------------------ [2001-12-01 14:46:15] mfisc...@php.net Should be fixed in CVS. Closing. ------------------------------------------------------------------------ [2001-11-30 21:00:47] mfisc...@php.net Update: Fix is coming, assigned to me. Btw, the syntax has changed since then, you'll have to use: print_r($arr[2]->children()); to see your CDATA node then. ------------------------------------------------------------------------ [2001-11-22 03:36:00] mfisc...@php.net Can you try with latest RC and see if it works http://www.php.net/~zeev/php-4.1.0RC3.tar.gz Feedback. ------------------------------------------------------------------------ [2001-05-21 13:49:12] dennis at svitonline dot com Hello Dear PHP Support. I have compatability problem with PHP 4.04 - PHP 4.05, exactly in DOMXML (i mean) module. This is piece of my code: ------------------------------------------------------------- <? function XML_Def_Parse($xml_file) { $doc = xmldoc(join("", file($xml_file)) ); $ctx = xpath_new_context($doc ); // $doc_vars = xml_parse_vars($ctx, "//DOC/VAR"); $obj = xpath_eval($ctx, "//DOC/BLOCKS/BLOCK"); $arr = $obj->nodeset; for($block_n=1; $block_n<sizeof($arr)+1; ++$block_n) { $block_vars = xml_parse_vars($ctx, "//DOC/BLOCKS/BLOCK[$block_n]/VAR"); $obj2 = xpath_eval($ctx, "//DOC/BLOCKS/BLOCK[$block_n]/BLOCKSET"); $arr2 = $obj2->nodeset; for($blockset_n=1; $blockset_n<sizeof($arr2)+1; ++$blockset_n) { $myobj = xpath_eval($ctx, "//DOC/BLOCKS/BLOCK[$block_n]/BLOCKSET[$blockset_n]"); $myarr = $myobj->nodeset; $blockset_type = $myarr[0]->getattr("type"); // $obj3 = xpath_eval($ctx, "//DOC/BLOCKS/BLOCK[$block_n]/BLOCKSET[$blockset_n]/BLOCKSETELEMENT"); $arr3 = $obj3->nodeset; $blocksetelements = array(); for($blocksetelement_n=1; $blocksetelement_n<sizeof($arr3)+1; ++$blocksetelement_n) { $blocksetelement_vars = xml_parse_vars($ctx, "//DOC/BLOCKS/BLOCK[$block_n]/BLOCKSET[$blockset_n]/BLOCKSETELEMENT[$blocksetelement_n]/VAR"); $blocksetelements[] = $blocksetelement_vars; } //$blocksets[$blockset_type] = array(array("sa"=>"as"),array("s2"=>"a2")); $blocksets[$blockset_type] = $blocksetelements; } $blocks[] = array_merge($block_vars, $blocksets); } $blocks_arr = array("BLOCKS"=>$blocks); $doc_v = array_merge($doc_vars, $blocks_arr); } function xml_parse_vars($ctx,$path) { $obj = xpath_eval($ctx, $path); $arr = $obj->nodeset; if($path == "//DOC/BLOCKS/BLOCK[1]/BLOCKSET[2]/BLOCKSETELEMENT[1]/VAR") { print_r($arr); } for($x=0; $x<sizeof($arr); ++$x) { $name = $arr[$x]->getattr("name"); $value = $arr[$x]->content; $results[$name] = $value; } return $results; } //function XML_Def_Parse("kulichki.xml"); ?> ------------------------------------------------------- This is "kulichki.xml": ------------------------------------------------------ <?xml version="1.0"?> <DOC version="1.0" copyright="(c) Denis Torbichuk, 2000"> <VAR name="DOC_CODE">KULICHKI.TV</VAR> <VAR name="DOC_DESC">Ïðîãðàììà òåëåïåðåäà÷ íà Kulichki</VAR> <VAR name="DOC_URL">tv6.htm</VAR> <BLOCKS> <BLOCK number="1"> <VAR name="BLOCK_DESC">Îáùèé áëîê</VAR> <VAR name="BLOCK_BEGIN"></VAR> <VAR name="BLOCK_END"></VAR> <BLOCKSET type="SINGLE"> </BLOCKSET> <BLOCKSET type="MULTIPLE"> <BLOCKSETELEMENT> <!-- <P><FONT SIZE=+2><B>Ïîíåäåëüíèê. 09 Àïðåëÿ. 41 ÊÀÍÀË<br></B></FONT><HR> --> <VAR name="EL_DESC">Êàíàë/äåíü</VAR> <VAR name="EL_PATTERN_BEGIN"/> <VAR name="EL_PATTERN"><![CDATA[<P>.*?<FONT.*?><B>{%%:day}. {%%:day} {%%:month}. {%%:channel}<br>.*?<HR>.*?<pre>{%%:programs}</pre>]]></VAR> <VAR name="EL_PATTERN_END"/> </BLOCKSETELEMENT> </BLOCKSET> </BLOCK> </BLOCKS> </DOC> ----------------------------------------------------- This script output in PHP 4.04 (it is right): X-Powered-By: PHP/4.0.4 Content-type: text/html Array ( [0] => DomNode Object ( [type] => 1 [name] => VAR [content] => Êàíàë/äåíü [node] => Resource id #24 ) [1] => DomNode Object ( [type] => 1 [name] => VAR [node] => Resource id #25 ) [2] => DomNode Object ( [type] => 1 [name] => VAR [content] => <P>.*?<FONT.*?><B>{%%:day}. {%%:day} {%%:month}. {%%:channel}<br>.*?<HR>.*?<pre>{%%:programs}</pre> [node] => Resource id #26 ) [3] => DomNode Object ( [type] => 1 [name] => VAR [node] => Resource id #27 ) ) But this is output from PHP 4.05 (it is wrong): X-Powered-By: PHP/4.0.5 Content-type: text/html Array ( [0] => DomNode Object ( [type] => 1 [name] => VAR [content] => Êàíàë/äåíü [node] => Resource id #24 ) [1] => DomNode Object ( [type] => 1 [name] => VAR [content] => [node] => Resource id #25 ) [2] => DomNode Object ( [type] => 1 [name] => VAR [content] => [node] => Resource id #26 ) [3] => DomNode Object ( [type] => 1 [name] => VAR [content] => [node] => Resource id #27 ) ) ----- As you see my CDATA node content is empty in PHP 4.05 case. Why? It is bug? When I insert text in node instead CDATA it is works. Can you explain me problem? P.S. I'm using PHP 4.04 & PHP 4.05 on WinNT (W2k) platform. Thanks. Sincerely yours, Denis Torbichuk. den...@svitonline.com ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=10994&edit=1