Seite 1 von 1

XML auslesen

Verfasst: 25. Januar 2005 11:23
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

Verfasst: 25. Januar 2005 16:18
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

Verfasst: 26. Januar 2005 14:38
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.

Verfasst: 28. Januar 2005 11:36
von pm_Snake
Jap, QDomDocument brauchst du dafür. Ist aber, glaub ich, Teil der Enterprise Edition, falls du Windows nutzt.

Verfasst: 28. Januar 2005 11:42
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.