Seite 1 von 1

[gelöst] XML mysteriöse Leerzeichen

Verfasst: 19. August 2005 21:28
von pumbah
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

Verfasst: 19. August 2005 22:39
von dani
Wenn das wirklich so da steht, ist das böse ;)

" if ( context = ContextMsg ) "

Verfasst: 19. August 2005 23:09
von pumbah
Danke Dani, ich habe es korrigiert.

Aber das war sicherlich nicht mein Fehler. 8)

Lösung

Verfasst: 23. August 2005 21:23
von pumbah
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