Probleme beim Parsen einer XML Datei

Alles rund um die Programmierung mit Qt
Antworten
pfotenpo
Beiträge: 33
Registriert: 17. Februar 2008 15:07

Probleme beim Parsen einer XML Datei

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
pfotenpo
Beiträge: 33
Registriert: 17. Februar 2008 15:07

Beitrag von pfotenpo »

ja aber gibt es denn keine möglichkeit die attribute eines tags in DER reihenfolge auszulesen wie man es gern hätte?!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Verwendest du Dom oder Sax?
pfotenpo
Beiträge: 33
Registriert: 17. Februar 2008 15:07

Beitrag von pfotenpo »

ich verwende DOM
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Dann probier es mal mit Sax. QXmlAttributes hat nämlich Positions-Parameter.
pfotenpo
Beiträge: 33
Registriert: 17. Februar 2008 15:07

Beitrag 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?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich gehe nicht davon aus
Antworten