Hi,
ich habe ein kleines Programm zum Parsen einer XML-Datei geschrieben (XmlDefaultHandler), das immer wenn es auf ein bestimmtes Start-Tag trift den Inhalt ausgeben soll, der in diesem Tag steht.
Nach meiner Vorstellung sollte z.B.
---------------
Hallo Welt!
---------------
ausgegeben werden, wenn das folgende Tag
<msg>Hallo Welt!</msg>
geparst wird.
Leider wird aber eher
---------------------
Hallo Welt!
---------------------
ausgegeben (gemeint ist das zwischen den gestrichelten Linien).
ich implementiere
bool QXmlContentHandler::characters ( const QString & ch ) {
if ( context == ContextMsg )
cout << ch <<endl;
return true;
}
-context ist eine enum
(Aus dem Gedächtnis. Bin gerade nicht im Büro)
Hat jemand eine Idee, was da läuft, wie ich es nicht will?
Gibt es eine bessere - fehlerfreie - Möglichkeit. Ich arbeite mich gerade erst ein.
cu,
pumbah
[gelöst] XML mysteriöse Leerzeichen
[gelöst] XML mysteriöse Leerzeichen
Zuletzt geändert von pumbah am 23. August 2005 21:21, insgesamt 2-mal geändert.
Lösung
Hi,
ich habe den context im endHandler auf ContextNone gesetzt. Damit wurde ch (und somit die Leerzeichen) nicht mehr ausgegeben.
Zur Erinnerung: context brauchte ich, um zu prüfen ob der Inhalt des anktuellen Tags von der Funktion characters() ausgegeben wird.
cu,
pumbah
ich habe den context im endHandler auf ContextNone gesetzt. Damit wurde ch (und somit die Leerzeichen) nicht mehr ausgegeben.
Zur Erinnerung: context brauchte ich, um zu prüfen ob der Inhalt des anktuellen Tags von der Funktion characters() ausgegeben wird.
cu,
pumbah