XML auslesen

Alles rund um die Programmierung mit Qt
Antworten
kleineSchildy
Beiträge: 76
Registriert: 16. September 2004 18:29
Wohnort: Dresden

XML auslesen

Beitrag von kleineSchildy »

Hallo,

hat sich schonmal jemand mit dem Thema XML auseinandergesetzt?

Ich habe dazu eine Frage.

Folgendes Problem. Ich habe mir eine schöne XML-Datei mit QT gebastelt und in eine txt-Datei geschrieben und möchte sie gern mit einer zweiten vergleichen. Allerdings muß es semantisch passieren. Es reicht also nicht, wenn ich beide Dateien in ein Byte-Array reinlade und diese Array's dann Zeichen für Zeichen zu vergleichen.

Hilfreiche wäre, wenn ich Daten in bestimmten Tags direkt ansprechen könnte. Gibt es dafür in QT schon Methoden?

Viele Grüße
Jana
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Hi Jana

solche Klassen gibt es in Qt. Eine ausführliche Beschreibung mit Beispielen findest Du u.a. in C++ GUI Programming with Qt 3, Kapitel 14 von Jasmin Blanchette u. Mark Summerfield.

Dort wird u.a. auch auf http://www.saxproject.org/ verwiesen

Gruss Arne
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Sampledatei:

Code: Alles auswählen

<config version="1">
  <tag1 id="1234" name="test">Hier steht auch noch was</tag1>
</config>
sample.cpp

Code: Alles auswählen

    QDomDocument doc;
    doc.setContent( &Sampledatei );
    QDomNode node = doc.documentElement().firstChild();
    while ( !node.isNull() ) {

      if ( node.isElement() && node.nodeName() == "tag1" ) {

        QString id = node.toElement().attribute( "id" );
        QString name = node.toElement().attribute( "name" );
        QString text = node.toElement().text();
      }
      node = node.nextSibling();
Ich hoffe mal, das nicht allzuviele Fehler drinn sind, aber so sollte das von der Art her klappen.

#include <qdom.h> ist das mit dem qxml.h hab ich ehrlich gesagt nicht wirklich eine Ahnung, wozu das nützlich wäre.
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag von pm_Snake »

Jap, QDomDocument brauchst du dafür. Ist aber, glaub ich, Teil der Enterprise Edition, falls du Windows nutzt.
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Aber wofür braucht man denn dieses qxml.h eigentlich? Also ich meine damit für was nützliches ist das? Hast du dafür ein Beispiel?

Also wer Qt kauft, der hat doch hoffentlich immer die Enterprise.
Antworten