Seite 1 von 1

Probleme beim Parsen einer XML Datei

Verfasst: 17. Februar 2008 15:21
von pfotenpo
hallo,

ich versuche ein XML - File einzulesen. das klappt soweit ganz gut, und ich kann mich auch innerhalb der Baumstruktur die erstellt wird gut bewegen und Werte aus dem XML - File auslesen und in Variablen speichern.

Mein Problem:

Code: Alles auswählen

<info>
 <node>
    <name value="" /> 
    <address value="" /> 
    <type value="Lampe/Light" /> 

    <status attribute="Status" type="bool" value1="an" value2="aus" /> 
    <status attribute="Webzugriff" type="bool" value1="J" value2="N" /> 

    <status attribute="Ort" type="string" value="" />  
    <status attribute="input" type="bool" value="turnOn" /> 
    <status attribute="input" type="bool" value="turnOff" /> 
    <status attribute="input" type="bool" value="switch" /> 
    <status attribute="output" type="bool" value="turnedOn" /> 
    <status attribute="output" type="bool" value="turnedOff" /> 
    <status attribute="output" type="bool" value="switched" /> 
    <status attribute="output" type="bool" value="broken" /> 
    <status attribute="output" type="bool" value="battEmpty" /> 
  </node>
</info>
Qt liest die Attribute der Tags leider nicht immer in der eigentlich Reihenfolge aus...um genau zu sein klappt alles bis auf die zwei status-Tags mit 4 Attributen...da ist die Reihenfolge in der er die Attribute ausliest folgende: 1 (attribute) -> 3 (value1) -> 4 (value2) -> 2 (type) ?!?!?! Warum denn nur? bei allen anderen Tags wird in richtiger Reihenfolge ausgelesen.

Weiß jemand woran das liegen könnte? ich will im quellcode im prinzip einfach sagen, sobald du auf ein attribute stößt, welches als wert "bool" hat, dann liste bitte alle nachfolgenden attribute in diesem Tag in eine QComboBox.

Danke für eure Hilfe.
Stefan

Verfasst: 17. Februar 2008 17:10
von upsala
Ist im XML-Standard definiert, daß die Reihenfolge von Attributen wichtig ist? Ich glaube nicht. Und meines Wissens speichert Qt intern die Attribute in einer QMap/QHash und somit ist auch diese Reihenfolge nicht definiert.

Verfasst: 17. Februar 2008 17:16
von pfotenpo
ja aber gibt es denn keine möglichkeit die attribute eines tags in DER reihenfolge auszulesen wie man es gern hätte?!

Verfasst: 17. Februar 2008 18:36
von upsala
Verwendest du Dom oder Sax?

Verfasst: 17. Februar 2008 19:53
von pfotenpo
ich verwende DOM

Verfasst: 17. Februar 2008 20:43
von upsala
Dann probier es mal mit Sax. QXmlAttributes hat nämlich Positions-Parameter.

Verfasst: 18. Februar 2008 12:38
von pfotenpo
Also meinst du es gibt mit DOM keine Möglichkeit die Attribute in der Reihenfolge auszulesen wie ich ich es als Programmierer mir vorstelle? Also einfach der Reihe nach so wie ich sie im XML-File deklariere?

Verfasst: 18. Februar 2008 13:31
von upsala
Ich gehe nicht davon aus