XML Datei auslesen

Alles rund um die Programmierung mit Qt
Antworten
Luna1987
Beiträge: 11
Registriert: 2. September 2009 14:34
Wohnort: Kassel

XML Datei auslesen

Beitrag von Luna1987 »

Hallo.
Ich würde gerne ein einfaches XML-Dokument auslesen. Folgendes habe ich bisher programmiert:

Code: Alles auswählen

QString fileName = QFileDialog::getOpenFileName(this,
     tr("Open XML-File"), "/home", tr("XML Files (*.xml)"));

	QDomDocument doc( "Hauptkatalog" );
	QFile file( fileName );
	QDomElement root = doc.documentElement();

	QDomNode n = root.firstChild();
	while( !n.isNull() )
	{
		QDomElement e = n.toElement();
		if( !e.isNull() )
		{
			if( e.tagName() == "Rolle" )
			{
				QString name = e.attribute( "Name", "" );
				QString kategorie= e.attribute( "Kategorie", "" );
				QString beschreibung = e.attribute( "Beschreibung", "" );
				QString tags = e.attribute("Tags", "");

				QMessageBox::information( 0, "Rolle", name + "\n" + kategorie + "\n" + beschreibung + "\n" + tags);
			}
		}	

	n = n.nextSibling();
	}

	file.close();
Leider geht er gar nicht erst in die Bedingung "while( !n.isNull() )" rein. Beim Debuggen sehe ich, dass er gar keine Elemente hat (siehe Anhang). Wie kommt das? Habe es mit mehrere XML-Dateien versucht, liegt also sicherlich nicht daran, dass die Datei irgendwie einen falschen Aufbau hat?!?

Danke für eure Hilfe.
Lg Luna :-)
Dateianhänge
ProblemXML.jpg
ProblemXML.jpg (31.3 KiB) 1830 mal betrachtet
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Du füllst nirgendwo dein QDomDocument mit den Daten aus deiner Datei :P
Schau dir nochmal das Beispiel in der Doku zu QDomDocument an, du wirst gleich erkennen welche Zeile dir fehlt.
(HINT: engl. für "setze Inhalt" ;))
Luna1987
Beiträge: 11
Registriert: 2. September 2009 14:34
Wohnort: Kassel

Beitrag von Luna1987 »

Hy franzf.

Danke :-)

Musste nur noch

Code: Alles auswählen

if (!doc.setContent(&file)) {
		file.close();
		return 0;
	}
hinzufügen und dann ging´s.
DANKE :-)

Lg Luna
Antworten