У меня XML со структурой, подобной этой:
<?xml version="1.0"?>
<Element id="123">
<Type>Type-of-element</Type>
<time>2020-02-20 20:20:20<time>
<part name="part1" type="Mech">Back</part>
<part name="part2" type="Mech">Back</part>
<part name="part3" type="Mech">Front</part>
<part name="part4" type="Electric">Side-left</part>
<part name="part5" type="Electric">Side-right</part>
<part name="part6" type="Electric">Front</part>
</Element>
Я написал эту функцию, чтобы прочитать это
QXmlStreamReader x(xml);
QString partName;
QString partType;
QString partValue;
unsigned long long int elementID;
QString type;
QString time;
if (x.readNextStartElement()){
if(x.name()=="Element"){
elementID=x.attributes().value("id").toULongLong();
qDebug()<<elementID;
}
while(x.readNextStartElement()){
if(x.name()=="part"){
partName = x.attributes().value("name").toString();
partType = x.attributes().value("type").toString();
partValue = x.readElementText();
qDebug()<<partName<<" "<<partType<<" "<<partValue;
}
else if(x.name()=="Type"){
type=x.readElementText();
qDebug()<<type;
}
else if(x.name()=="time"){.
time=x.readElementText();
qDebug()<<time;
}
else{
qDebug()<<"invalid name: "<<x.name();
}
}
}
И консольную печать просто так:
123 "Тип элемента" "20020-02-20 20:20:20"
Таким образом, чтение нескольких атрибутов не сработало. Как я могу это прочитать?