Seite 1 von 1

XML (in QDom) EmptyTag / Leer-Tag erzeugen

Verfasst: 10. Februar 2006 09:32
von webbasti
Hallo!

Ich möchte unbedingt,
dass mir QDom bei einem Leer-Tag anstatt

Code: Alles auswählen

<tagname/>
ein

Code: Alles auswählen

<tagname></tagname> 
erzeugt wird.

Jemand eine Idee wie das geht?

Danke, Basti

Verfasst: 10. Februar 2006 09:51
von Christian81
Mir ist nichts dergleichen bekannt.
Was soll das für einen Sinn haben?

Sinn

Verfasst: 10. Februar 2006 10:39
von webbasti
Es gibt eine FEST definierte Schnittstelle, die es nur so akzeptiert.
Eine Diskussion darüber bringt mir da aber nix. ;-)
Wie sehr unkonform sie auch noch sein mag..

Verfasst: 10. Februar 2006 10:49
von Christian81
Also anders ausgedrückt - die Schnittstelle ist scheisse und kann im Grunde gar kein XML verarbeiten sondern tut nur so. :)

Wenn ich den Quellcode richtig lese, geht es nicht so ohne weiteres -> qt-4/src/xml/qdom.cpp, Funktion "QDomElementPrivate::save(QTextStream& s, int depth, int indent)".

- Mag Deine Spec ein Leerzeichen zwischen <tagname> und </tagname> - wenn ja dann definiere deine leeren Inhalte als ein Leerzeichen ...

- Da die Ausgabe aber auch in ein QTextstream geht, könntest du dann per QRegExp nach "<([^/]*)/>" suchen und dann mit "<\1></\1>" ersetzen.

Problem gelöst

Verfasst: 10. Februar 2006 10:50
von webbasti
Auf die einfachste Methode bin ich natürlich nicht gekommen:

einfach eine leere Textnode hinzufügen:

Code: Alles auswählen

Element.appendChild( docXML.createTextNode( "" ) );
Vielleicht stößt ja mal wieder jemand auf das Problem!