Umlaute und XML

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

  • Umlaute und XML

    Hallo,
    ich erzeuge mit PHP eine "virtuelle" XML-Datei, die dann in Flash geladen wird.

    Hier ein Auszug:
    PHP-Code:
    echo '<?xml version="1.0" encoding="UTF-8"?>
    <test>';
    ....
    while($i<$num) {
      $nachricht =mysql_result($result,$i,"nachricht ");
      // usw.
      echo '<news datum="'.$datum.'">'.$nachricht.'</news>';    
    $i++;
    }

    echo '</test>';
    Mein Problem ist nun, dass er bei Umlaute und Sonderzeichen eine Errormeldung ausgibt "Im Textinhalt wurde ein ungültiges Zeichen gefunden. ". Eigentlich dachte ich mir, dass ich das einfch mit <![CDATA[ '.$nachricht.' ]]> löse. Also:

    PHP-Code:
    echo '<news datum="'.$datum.'"><![CDATA[ '.$nachricht.' ]]></news>'
    Aber ich bekomme dann Trotdzem noch die Meldung wenn $nachricht einén Umlaut enthält.
    Kann mir das jemand erklären ... *nix versteh*

  • #2
    Hi Victor M.!

    1) Versuche es mal mit encoding="ISO-8859-1".

    2) CDATA ist ein Stringliteral, das versucht die Gültigkeit des XML Doc´s zu bewahren, indem es bestimmte Sonderzeichen oder Kombinationen unterdrückt

    3) ON-Fly Validierung ist nicht gerade 'geschickt'; eigentlich auch sinnlos.
    Binde statt dessen eine externe DTD ein:
    PHP-Code:
    <!-- dein xml -->
    <!
    DOCTYPE deinXML SYSTEM "deineDTD.dtd">

    <!-- 
    deine DTD -->
    <!
    ELEMENT news (#PCDATA)>
    <!ATTLIST news datum CDATA #REQUIRED> 
    Hoffe, konnte Dir helfen.

    Blaster
    Yuppi, endlich Elite ...

    Kommentar


    • #3
      Re: Umlaute und XML

      Hallo,
      wenn du die variabel erst encodierst, dann klappt es:
      PHP-Code:
      $nachrichtutf8_encode ($nachricht); 

      Kommentar


      • #4
        1) Versuche es mal mit encoding="ISO-8859-1".
        Da er es für Flash verwenden will ist UTF-8 besser

        Kommentar

        Lädt...
        X