QtXML funktioniert nicht
QtXML funktioniert nicht
Ich hab eben versuch mit QXML ein XML Datei zu erzeugen. Dabei gab es immer wieder Fehlermeldungen. Nun habe ich versucht das Standardbeispiel aus der Dokumentation übersetzen zu lassen (DOM-Bookmarks). Hier krieg ich die Fehlermeldung "QDomDocument. No such file or directory". In den Includes steht der Ordner QtXml mit drin. Aber in dem Ordner befindet sich keine QDomDocument.h, daher auch der Fehler. Ich hatte damals qt-win-opensource-4.1.0-mingw.exe heruntergeladen. Ist da QtXML noch nicht kompiliert oder wieso fehler mir sämtliche *.h Dateien bzg. XML?
Code: Alles auswählen
#include <QtXml/QDomDocument>
#include <QtGui/QtGui>
int main(int argc, char* argv[]){
QDomDocument x("Bla");
return 0;
}
gibt bei mir folgende Fehlermeldung:
Code: Alles auswählen
[Linker error] undefined reference to `_imp___ZN12QDomDocumentC1ERK7QString'
[Linker error] undefined reference to `_imp___ZN12QDomDocumentD1Ev'
ld returned 1 exit status
C:\Dokumente und Einstellungen\nobody\Desktop\domtest\Makefile.Release [Build Error] [release\domtest.exe] Error 1
was ist darunter zu verstehen? Weiß jemand wo das Problem liegt?
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
CONFIG += xml
Siehe auch Doku: http://doc.trolltech.com/4.1/qtxml.html
Siehe auch Doku: http://doc.trolltech.com/4.1/qtxml.html
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Querdenker
- Beiträge: 99
- Registriert: 1. Dezember 2005 17:44
- Wohnort: Karlsruhe
Hallo,
ich denke mal, ohne jemanden zu "erschlagen", dass Dich das Beispiel weiterbringen wird:
Dieser Konstruktor versucht ein XML-File zu öffnen. Wenn nicht gefunden,
legt er einfach eine Neue an
Die Klasse selbst ist so definiert (falls etwas unklar da oben wäre). Im Falle Interesse an einem richtigen (XML)DOM-Dokument besteht. Diese Klasse hier ist wirklich extrem schnell
eine etwas umfangreiche Geschichte, weshalb der og. Konstruktor insbesondere fruchten wird 
ich denke mal, ohne jemanden zu "erschlagen", dass Dich das Beispiel weiterbringen wird:
Code: Alles auswählen
XmlDom::XmlDom(QApplication *papp, QString sActFile, QString sApplication){
mx.lock();
app = papp;
ActXmlFile = app->applicationDirPath();
QStringList ls = sActFile.split("/");
ActXmlFile += "/" + ls[ls.count()-1] + ".xml";
AppName = sApplication;
QFile fil(ActXmlFile);
if(!fil.exists()){
fil.open(QIODevice::WriteOnly);
QTextStream out(&fil);
out.setCodec("UTF-8");
out << "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
<< "<!DOCTYPE tttt>\n"
<< "<tttt version=\"1.0\" >\n</tttt>";
fil.close();
}
fil.close();
mx.unlock();
isopen=false;
};legt er einfach eine Neue an
Die Klasse selbst ist so definiert (falls etwas unklar da oben wäre). Im Falle Interesse an einem richtigen (XML)DOM-Dokument besteht. Diese Klasse hier ist wirklich extrem schnell
Code: Alles auswählen
#ifndef mDOM_H
#define mDOM_H
#include <QObject>
#include <QMap>
#include <QThreadStorage>
#include <QDomDocument>
#include <QMutex>
class QString;
class QFile;
class QDomElement;
class QApplication;
class QColor;
class QDomNamedNodeMap;
class XmlDom : public QObject {
Q_OBJECT
private:
QDomDocument doc;
QString ActXmlFile;
QApplication *app;
QMutex mx;
QDomElement mainE;
QString AppName;
bool isopen;
//Templates
QThreadStorage<QMap<QString, QString>*> cache;
//private Functions
QDomElement findElement (QString, QString, QString, int);
QString GetRowName (int);
QString GetColName (int);
void AddRowAttribute (QDomElement);
void AddColAttribute (QDomElement);
void insertIntoCache (QString, QString);
void removeFromCache (QString);
QString readFromCache (QString);
void changeColRow (QString, int);
public slots:
void changeRowAttr (QString);
void changeColAttr (QString);
void renameTable (QString, QString);
void delTable (QString);
void delRow (QString, int);
void delCol (QString, int, int);
void clearCache ();
signals:
void docloaded ();
void docsaved ();
void docerror (QString, int , int);
void rowerror (QString, int);
void colerror (QString, int, int);
void rowchanged (QString, int);
void colchanged (QString, int, int);
void rowremoved (QString, int);
void colremoved (QString, int, int);
void rowadded (QString, int);
void coladded (QString, int, int);
void docbeforeload ();
void docbeforesave ();
public:
XmlDom (QApplication*, QString, QString);
QString GetXmlName () { return ActXmlFile; };
QString GetAppName () { return AppName; };
bool AddTable (QString);
bool AddRow (QString, int);
bool AddCol (QString, int, int);
void setTabName (QString);
void setRowID (int);
void setRowPos (int);
void setRowHeight (int);
void setAlign (int);
void setRow (int);
void setWidth (int);
void setFont (QString);
void setBackcolor (QColor);
void setForecolor (QColor);
void setFramecolor (QColor);
void setColID (int);
bool isTableExist (QString);
bool isRowExist (QString, int);
bool isColExist (QString, int, int);
void saveDOM ();
void openDOM ();
};
#endife Grüssle au
Q...
Q...