Seite 1 von 1

QDomAttr und xmlns:xsi

Verfasst: 23. Februar 2009 21:19
von rafilis1982
Hallo zusammen,

ich habe folgenden XMl Header gegeben:

Code: Alles auswählen

<CityModel xmlns="http://www.ikg.uni-bonn.de/sig3d/pilot3d"
version="1.1.0"
xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="D:/CityGML.xsd"
Nun versuche ich mit QT und DOM diesen Header auszulesen. Dazu habe ich ein QDomElement e:

Code: Alles auswählen

if(e.hasAttributes())
	{
		QDomNamedNodeMap tmp = e.attributes();
		for(int i = 0; i < tmp.length(); i++)
		{
			QDomAttr a = tmp.item(i).toAttr();
                       ....               
                 }
         }



Lasse ich mir das jetzt ausgeben so erscheint folgendes:

Code: Alles auswählen

CityModel xmlns="http://www.ikg.uni-bonn.de/sig3d/pilot3d"
schemaLocation="D:/CityGML.xsd"
version="1.1.0"
Also zum einen ist die Reihenfolge vertauscht und zum anderen fehlen die Attribute mit xmlns Präfix. Lösche ich diesen Präfix werden auch diese Elemente mit ausgeben, jedoch ist auch da die Reihenfolge vertauscht.

Warum ist dem so?

Verfasst: 23. Februar 2009 21:38
von rafilis1982
Ok, das Problem mit dem Präfix habe ich gerade selbst gelöst, aber ich versteh immer noch nicht warum die Reihenfolge vertauscht wird bei der Ausgabe?

Hat da jmd eine Idee zu?

Verfasst: 23. Februar 2009 21:58
von upsala
Es gibt meines Wissens keine Verpflichtung die Reihenfolge der Attribute einzuhalten, da dies eigentlich auch nicht relevant sein sollte.