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=34591&edit=1

Reply via email to