while (!xml.atEnd()) {
//qDebug() << "XML returned:" << xml.text().toString();
xml.readNext();
if (xml.isStartElement()) {
if (xml.name() == QLatin1String("id")) {
publisher.setId(xml.readElementText());
} else if (xml.name() == QLatin1String("name")) {
publisher.setName(xml.readElementText());
} else if (xml.name() == QLatin1String("registrationurl")) {
publisher.setUrl(xml.readElementText());
} else if (xml.name() == QLatin1String("fields")) {
while (!xml.atEnd()) {
xml.readNextStartElement();
if (xml.isStartElement()) {
if (xml.name() == QLatin1String("field")) {
Field t;
while (!xml.atEnd()) {
xml.readNextStartElement();
if (xml.isStartElement()) {
if (xml.name() == QLatin1String("fieldtype")) {
t.type = xml.readElementText();
} else if (xml.name() == QLatin1String("name")) {
t.name = xml.readElementText();
} else if (xml.name() == QLatin1String("fieldsize")) {
t.fieldsize = xml.readElementText().toInt();
} else if (xml.name() == QLatin1String("required")) {
t.required = xml.readElementText() == QLatin1String("true");
} else if (xml.name() == QLatin1String("options")) {
while (!xml.atEnd()) {
xml.readNextStartElement();
if (xml.isStartElement()) {
if (xml.name() == QLatin1String("option")) {
t.options << xml.readElementText();
}
} else if (xml.isEndElement() && xml.name() == QLatin1String("options")) {
xml.readNext();
break;
}
}
}
} else if (xml.isEndElement() && (xml.name() == QLatin1String("field"))) {
xml.readNext();
break;
}
}
publisher.addField(t);
}
} else if (xml.isEndElement() && (xml.name() == QLatin1String("fields"))) {
xml.readNext();
break;
}
}
} else if (xml.name() == QLatin1String("supportedtargets")) {
while (!xml.atEnd()) {
xml.readNextStartElement();
if (xml.isStartElement()) {
if (xml.name() == QLatin1String("target")) {
Target t;
t.name = xml.readElementText();
publisher.addTarget(t);
}
} else if (xml.isEndElement() && (xml.name() == QLatin1String("supportedtargets"))) {
xml.readNext();
break;
}
}
}
} else if (xml.isEndElement()
&& ((xml.name() == QLatin1String("publisher"))
|| (xml.name() == QLatin1String("user")))) {
break;
}
}