Læse xml med danske tegn
Jeg har et php-dokument, som skal indlæse data fra xml-filen bolig.xml. Dette går helt fint medmindre der er danske tegn inde i den tekst der bliver indlæst. I så fald er det kun æ, ø og å der bliver vist. Eks. hvis der står sådan her i xml-filen, så er det kun ø'et der bliver vist i browseren.<overskrift>Lige nu ø:</overskrift>
Nogen idéer til hvad det kan skyldes? Jeg bruger utf-8 encoding. Har haft prøvet at skifte over til iso-...
min xml_parser ser således ud:
$current_tag = "";
function startElement($parser, $name, $attrs)
{
global $current_tag;
if($name == "URL") $current_tag = $name;
if($name == "PHOTO") $current_tag = $name;
if($name == "OVERSKRIFT") $current_tag = $name;
}
function endElement($parser, $name)
{
global $current_tag;
$current_tag = "";
}
function characterData($parser, $data)
{ global $current_tag, $url, $photo, $overskrift;
if($current_tag == "URL") $url = $data;
if($current_tag == "PHOTO") $photo = $data;
if($current_tag == "OVERSKRIFT") $overskrift = $data;
}
function parseXmlFile()
{
$file = "../xml/kasse.xml";
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,true);
xml_parser_set_option($xml_parser,XML_OPTION_TARGET_ENCODING,'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");
}
while ($data = fread($fp, 4096)) {
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);
}