ID: 34591
Updated by: [EMAIL PROTECTED]
Reported By: priit at ww dot ee
-Status: Open
+Status: Feedback
Bug Type: XML related
Operating System: Windows XP SP2
PHP Version: 5.0.5
New Comment:
Well, then try to provide really complete reproduce script?
I doubt that $file = 'failid/kontakt.xml'; .. will work without the
.xml file.
Previous Comments:
[2005-09-22 13:37:50] priit at ww dot ee
...
[2005-09-21 23:38:27] priit at ww dot ee
charset has nothing to do with it. I tried converting the input to
latin1 first and utf8 and changed the xml_parser_create charset
accordingly, but the result was the same always! the characters in my
example xml are compatible with ISO-8859-1 although the xml input it
sayd to be ISO-8859-15 ... if I changed the xml itself also to
something else the result was still the same.
[2005-09-21 23:35:56] priit at ww dot ee
?php
$file = 'failid/kontakt.xml';
function startElement($parser, $name, $attrs)
{
global $temp_name;
$temp_name = $name;
}
function endElement($parser, $name)
{
global $temp_name,$temp_value,$moodul;
if($temp_name==$name) {$moodul .= ($temp_name : $temp_value)\n;}
}
function characterData($parser, $data)
{
global $temp_value;
$temp_value = $data;
}
$moodul = 'PRE';
$xml_parser = xml_parser_create('ISO-8859-1');
xml_set_element_handler($xml_parser, startElement, endElement);
xml_set_character_data_handler($xml_parser, characterData);
if (!($fp = fopen($file, r))) { die(could not open XML input); }
$data = fread($fp, filesize($file));
if(!xml_parse($xml_parser, $data, feof($fp)))
{
die(sprintf(XML error: %s at line %d,
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
xml_parser_free($xml_parser);
$moodul .= '/PRE';
echo $moodul;
?
[2005-09-21 23:17:34] [EMAIL PROTECTED]
Try using compatible charset.
[2005-09-21 23:15:36] priit at ww dot ee
using php code:
$xml_parser = xml_parser_create('ISO-8859-1');
xml_set_element_handler($xml_parser, startElement, endElement);
xml_set_character_data_handler($xml_parser, characterData);
$data = fread($fp, filesize($file));
if(!xml_parse($xml_parser, $data, feof($fp)))
{
die(sprintf(XML error: %s at line %d,
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
xml_parser_free($xml_parser);
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/34591
--
Edit this bug report at http://bugs.php.net/?id=34591edit=1