Prüfen ob Eingabe XML konform?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Hallo,

ich habe ein Script geschrieben, bei der ein User über ein Eingabefeld einen bestimmten Wert in einer XML Datei editieren kann. Nun möchte ich prüfen, ob die Eingabe des Users auch einen XML konformen Inhalt enthält. Ich glaube, zu Problemen können hauptsächlich Umlaute führen oder? Vielleicht aber auch noch andere Sonderzeichen....
Gibt es eine simple Möglichkeit, quasi den Inhalt der Variable x auf XML-konformen Inhalt zu prüfen?

Gruß
BlackJack

Als XML parsen und schauen ob das klappt ist zu einfach, oder? :-)
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Hm, aber in der Variable x steht ja rein nur die Eingabe, also zum Beispiel "Otto". Also die Eingabe des Users selbst hat noch nicht direkt was mit XML zu tun. Die Fehlermeldung die kommt, erscheint ja erst an der Stelle, wenn ich probiere mit lxml den Inhalt (also "Otto") an die entsprechende Stelle in der XML zu schreiben. Das bedeutet ja, dass die Überprüfung vorher stattfinden muss? Oder peil ichs grad net? :)
Also wenn er ein Wort mit einem Umlaut einträgt, darf das Wort ja erst garnicht in die XML geschrieben werden...
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

http://www.xmlvalidation.com/xml.0.html?L=2 ist eine Seite, die XML-Dateien und XML-Code validiert. Wenn du mit urrlib rumspielen kannst, dann lädst du eine XML-Datei hoch und guckst dir das Ergebnis an. Wenn die XML-Datei valide ist, ist der Text "
Es wurden keine Fehler festgestellt." zu sehen.

PS: mit Umlauten hatte ich beim genannten Validator keine Probleme.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

XML ist per default UTF-8, d.h. wenn du mit Umlauten Probleme hast, dann machst du irgendwas falsch ;)
Ich denke eher, dass du einen Fehler beim Schreiben machst, wenn der Input doch gar kein XML ist. Ansonsten zeig mal Code/Fehlermeldung.

@derdon Ich bezweifel, dass das Sinn macht ;) Immerhin hat er schon lxml und damit eigene Parser an Bord. Außerdem fänd ich es unschön zwangsweise ans Internet angebunden zu sein, um irgendetwas zu benutzen, dass das eigtl gar nicht braucht.
BlackJack

@blubber: XML ist Unicode und Unicode kennt Umlaute. Du siehst da wahrscheinlich ein Problem dass es gar nicht gibt. Solange Du intern immer brav mit Unicode arbeitest, passt das schon.
Antworten