Seite 1 von 1

XML Umlaute

Verfasst: 18.02.2011 18:03
von Iggels
Ich möchte eine XML Datei mit Umlauten auslesen, diese hier:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis>
     <titel>Test Eintrag</titel>
     <eintrag>
          <stichwort>Genf</stichwort>
          <eintragstext>Genf ist der Sitz von ...</eintragstext>
     </eintrag>
     <eintrag>
          <stichwort>Köln</stichwort>
          <eintragstext>Köln ist eine Stadt, die ...</eintragstext>
     </eintrag>
</verzeichnis>
Leider spuckt mir die Xml.pb aus der Hilfe immer einen Fehler aus:

Error
---------------------------
Error in the XML file:
Message: not well-formed (invalid token)
Line: 9 Character: 23
---------------------------

An der Stelle ist ein Umlaut, wenn ich den weghau gehts. Hat jmd ne idee was das Problem ist?

Re: XML Umlaute

Verfasst: 18.02.2011 18:10
von ts-soft
http://www.devtrain.de/news.aspx?artnr=296
oder einen Notetyp: #PB_XML_CData

Re: XML Umlaute

Verfasst: 18.02.2011 18:12
von DarkDragon
Ist die Datei auch wirklich im UTF-8 Encoding gespeichert?

Re: XML Umlaute

Verfasst: 18.02.2011 18:27
von Iggels
ahhhh danke ts-soft, klaro, funtzt
@DarkDragon jup is utf8 und unicode eingestellt

Re: XML Umlaute

Verfasst: 18.02.2011 18:35
von Thorsten1867
Ich verwende jede Menge XMLs mit Umlauten in meinen Programmen.
Am besten mal mit Notepad++ überprüfen, welches Format die Datei wirklich hat.

Noch besser XML direkt mit PureBasic erzeugen:

Code: Alles auswählen

If CreateXML(0)
  *MainNode = CreateXMLNode(RootXMLNode(0))
  If *MainNode
    SetXMLNodeName(*MainNode, "verzeichnis") ;{ MainNode
    *NewNode = CreateXMLNode(*MainNode, -1)
    If *NewNode
      SetXMLNodeName(*NewNode, "titel")
    EndIf
    ;
    ; .....
    ;
    SaveXML(0, "Test.xml")
  EndIf
  FreeXML(0)
EndIf

Re: XML Umlaute

Verfasst: 18.02.2011 19:00
von Nino
ts-soft hat geschrieben:http://www.devtrain.de/news.aspx?artnr=296
oder einen Notetyp: #PB_XML_CData
Bei dem angegebenen Link steht u.a.
Umlaute und das ß müssen aber so definiert werden:

Ä &#196;
Ö &#214;
Ü &#220;
ä &#228
ö &#246;
ü &#252;
ß &#223;
Die Aussage gilt wohl für ASCII-Codierung.
Aber sowas sollte mit

Code: Alles auswählen

encoding="UTF-8"
wie Iggels es gemacht hat, nicht nötig sein (weil das

Code: Alles auswählen

encoding="UTF-8"
sonst völlig nutzlos wäre).
Und die XML-Datei muss natürlich auch tatsächlich im UTF-8-Format gespeichert sein!

Grüße, Nino

Re: XML Umlaute

Verfasst: 18.02.2011 19:06
von STARGÅTE
Also ich kann die XML Datei die wirklich in UFT-8 gespeichert ist, ohne probleme mit der Xml.pb öffnen.

Speicher ich die XML-Datei jedoch in ASCII, bekomm ich den fehler.

Von daher vermute ich, dass du die datei garnicht in UTF-8 gespeichert hast.
(es geht dabei um die XML-Datei, nicht zum PureBasic!)

Re: XML Umlaute

Verfasst: 18.02.2011 19:16
von Nino
Thorsten1867 hat geschrieben:Am besten mal mit Notepad++ überprüfen, welches Format die Datei wirklich hat.
Genau, mit Notepad++ habe auch ich die Erfahrung gemacht, dass das Encoding von Textdateien richtig erkannt wird. Manche anderen (Freeware-) Editoren machen da Fehler, so dass man sich auf deren Anzeige nicht verlassen kann.

Grüße, Nino

Re: XML Umlaute

Verfasst: 18.02.2011 19:47
von ts-soft
Sicher erkennbar ist es nur mit BOM. Jegliche Funktion oder API die Codierung auch ohne BOM erkennt ist
unzuverlässig! Es gibt dafür keine zuverlässige Funktion.