seit Upgrade zu PHP5 spinnt der XML-Parser

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • seit Upgrade zu PHP5 spinnt der XML-Parser

    ojeoje.... kann jemand helfen:

    Beipiel:
    PHP-Code:
    <?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> 
    <data> 
      <element>Märchen</element> 
    </data>

    Wurde unter PHP4 korrekt ausgelesen. Seit dem Upgrade auf PHP5 liest der Parser als <element>-Inhalt nur noch "rchen" aus, d.h. er schneidet alles vor und inclusive dem Sonderzeichen ab

    Hab schon ein bisserl mit utf8_decode() und utf8_encode() ausprobiert, hat aber nicht wirklich zum Erfolg geführt...

    Jemand ne Idee wie ich meine XML-Dokumente mit Sonderzeichen wieder korrekt gelesen bekomme?

    Hier noch der Code meines Parsers:
    PHP-Code:

        $xml_parser1 
    xml_parser_create("ISO-8859-1"); 
        
    xml_set_element_handler($xml_parser1"globals_start_element_handler""globals_end_element_handler"); 
        
    xml_set_character_data_handler($xml_parser1,"globals_character_data_handler"); 
        
    $fp = @fopen($file"r") or die("could not open XML config-file: $file"); 
        while (
    $data = @fread($fp4096)) 
        { 
            
    $data=utf8_decode($data); 
            if (!
    xml_parse($xml_parser1$datafeof($fp))) 
            die(
    sprintf("XML Error: %s at line %d"
                
    xml_error_string(xml_get_error_code($xml_parser1)), 
                
    xml_get_current_line_number($xml_parser1))); 
        } 
        
    xml_parser_free($xml_parser1); 
    Zuletzt geändert von fistro; 10.08.2004, 17:32.

  • #2
    yup, der parser gibt mehr aufrufe zurück, einfach dranhängen wenn kein neues start/stop element kommt.


    Siehe auch:

    http://bugs.php.net/bug.php?id=29302

    Kommentar


    • #3
      Hallo Revolutio, habe deinen Beitrag beim googeln gefunden.

      Original geschrieben von Revolutio
      yup, der parser gibt mehr aufrufe zurück, einfach dranhängen wenn kein neues start/stop element kommt.


      Siehe auch:

      http://bugs.php.net/bug.php?id=29302
      Das selbe Problem habe ich zur Zeit auch, jedoch bekomme ich z.B. bei dem String "Dumm und D&#252;mmer" aus dem XML-File folgendes Ergebnis:

      Dumm und D
      ü
      mmer

      Nun habe ich auch den Link mal verfolgt, aber so richtig wurde ich daraus nicht schlau. Wie sieht denn dein Code fürs Concat nun genau aus? Ich habe sowas in der Art schon versucht, aber ich bekomme dann quasi immer eine Verdoppelung der Ausgabe:

      Dumm und DDumm und D
      üü
      mmermmer

      Den Code für das Skript und die XML habe ich mal in den Anhang gepackt (erzeugt jedoch nur die Ausgabe mit dem Umbruch der Zeile, ist nichts von meinem Concat-Gewurschtel drin). Apache 2.0.50, PHP 5.0.0.1

      Danke, Horror
      Angehängte Dateien
      Zuletzt geändert von Horror; 30.08.2004, 23:17.

      Kommentar


      • #4
        PHP-Code:
        $Titel $inhalt;
        if (
        $close != "title")
        {
            
        $Titel .= $inhalt;


        schau dir den absatz genau an!

        wenn $close nicht title ist wird es auf jedenfall verdoppelt


        EDIT:
        BTW: Komm gerade von Korsika zurück

        Kommentar


        • #5
          Hallo. Danke für deine Antwort. Ich habe es die Woche dann nach langem Friemeln auch hinbekommen. Habe es noch ein wenig abgeändert und etwas uneleganter gelöst, aber es tut auch seinen job

          Sowas mit Urlaub dachte ich mir fast

          Horror

          Kommentar

          Lädt...
          X