XML Umlaute

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Iggels
Beiträge: 53
Registriert: 17.02.2006 21:30

XML Umlaute

Beitrag 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?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: XML Umlaute

Beitrag von ts-soft »

http://www.devtrain.de/news.aspx?artnr=296
oder einen Notetyp: #PB_XML_CData
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: XML Umlaute

Beitrag von DarkDragon »

Ist die Datei auch wirklich im UTF-8 Encoding gespeichert?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Iggels
Beiträge: 53
Registriert: 17.02.2006 21:30

Re: XML Umlaute

Beitrag von Iggels »

ahhhh danke ts-soft, klaro, funtzt
@DarkDragon jup is utf8 und unicode eingestellt
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: XML Umlaute

Beitrag 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
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: XML Umlaute

Beitrag 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
Zuletzt geändert von Nino am 18.02.2011 19:20, insgesamt 1-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: XML Umlaute

Beitrag 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!)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: XML Umlaute

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: XML Umlaute

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten