Avatar billede river_rage Nybegynder
23. april 2007 - 15:31 Der er 3 kommentarer og
1 løsning

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);
           
            }
Avatar billede jakobdo Ekspert
23. april 2007 - 15:54 #1
Når du læser XML filen, er der så tale om html_entities eller står de som ÆØÅ ?
Du kan måske indlæse det, og konverte det via: utf8_encode()
Avatar billede sw_red_6 Nybegynder
18. juni 2007 - 10:56 #2
Jeg har lidt det samme problem i øjeblikket og har fundet ud af at parseren af en eller anden grund splitter teksten op i før en del før Æ/Ø/Å og en efter...
Jeg ved så ikke lige om der kan gøres noget ved det, andet end at sætte teksten sammen hvis det er muligt..
Avatar billede larsholmgaard_dk Nybegynder
18. juni 2007 - 10:59 #3
Jeg lytter lige med her - har et lignende problem.
Avatar billede river_rage Nybegynder
21. april 2010 - 12:01 #4
Lukker denne tråd, da den er 3 år gammel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester