Ich versuche, Daten aus einer XML-Datei in ein C++-Programm mit dem Qt-Toolkit einzugeben. Meine XML-Daten sind wie folgt formatiert:
`<item>
<title>title<\title>
<tree_loc1>0<\tree_loc1>
<parent>parent<\parent>
<description>description<\description>
<other_info>other info<\other_info>
<location>location<\location>
<last_modified>Mar 28 2009 8:16 pm<\last_modified>
<radio>0<\radio>
</item>`
Derzeit lautet die Funktion, die ich in das XML einlesen muss, wie folgt. Leider erkennt sie die Daten aus dem ersten Tag (dem Titel) und gibt dann alle zukünftigen Versuche, auf die Daten zuzugreifen, als NULL zurück. Der subRoot, den ich übergebe, ist das domDocument.documentElement(). Ich bin ganz neu in XML und etwas neu in Qt, und würde jede Hilfe zu schätzen wissen, die Sie bei der Lösung meines Problems anbieten können! Ich danke Ihnen sehr.
void XmlHandler::readXML(QStandardItemModel *model, QDomNode subRoot){
QDomElement node;
QString title;
int row;
QString parent;
QString description;
QString other_info;
QString location;
QString last_modified;
QString radio;
QString value;
bool flag;
if (subRoot.isNull())
return; // error condition
for (int i = 0; i < N_STRINGS; i++){
node = subRoot.firstChildElement(tagName[i]); // returns NULL all but the 1st time
value = DEFAULT_VALUE;
value = node.text();
switch (i) {
case 0:
title = value;
break;
case 1:
row = value.toInt();
break;
case 2:
parent = value;
break;
case 3:
description = value;
break;
case 4:
other_info = value;
break;
case 5:
location = value;
break;
case 6:
last_modified = value;
break;
case 7:
radio = value;
break;
}
}
}