#47117 [Opn->Fbk]: wrong XML parse, loss chars
ID: 47117
Updated by: jani@php.net
Reported By: dir at melbis dot com
-Status: Open
+Status: Feedback
Bug Type: DOM XML related
Operating System: FreeBSD 7.1
PHP Version: 5.2.8
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
Previous Comments:
------------------------------------------------------------------------
[2009-01-15 17:24:28] dir at melbis dot com
Description:
------------
When parsing XML, chars "<" and ">" was gone...
For sample, Tag has "<STRONG>", but outside wrong value:
"STRONG", must be "<STRONG>"
Reproduce code:
---------------
$data = '<MELBISSHOP Version="5.4.0"><DO
KeyValues="1242"><descr><STRONG></descr></DO></MELBISSHOP>';
$xml_parser = xml_parser_create('UTF-8');
xml_set_element_handler($xml_parser, "start_xml_tag", "end_xml_tag");
xml_set_character_data_handler($xml_parser, "xml_tag");
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, FALSE);
xml_parse($xml_parser, $data, true);
function start_xml_tag($mParser, $mName, $mAttrs) {
global $gDoValues, $gCurrentTagName;
$gCurrentTagName = $mName;
if ( $mName != 'DO' ) { $gDoValues[$gCurrentTagName] = ''; } else {
$gDoValues = array(); } }
function xml_tag($mParser, $mData) {
global $gDoValues, $gCurrentTagName;
$gDoValues[$gCurrentTagName] .= $mData;}
function end_xml_tag($mParser, $mName) {
global $gDoValues, $gData;
if ($mName == 'DO') { print_r($gDoValues); }}
Expected result:
----------------
Array
(
[descr] => <STRONG>
)
Actual result:
--------------
Array
(
[descr] => STRONG
)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=47117&edit=1
Thread (4 messages)