У меня проблема с анализом XML-документа с использованием pugiXml, мне кажется, что все правильно, но этот код не работает 🙁
void MainWindow::open()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open");
xml_document doc;
doc.load_file(fileName.toStdString().c_str());
for (pugi::xml_node node : doc.child("Person"))
{
qDebug(node.child_value("nom"));
qDebug(node.child_value("Age"));
}
}
Формат файла XML:
<?xml version="1.0"?>
<Persons>
<Person>
<nom>Med</nom>
<Age>12</Age>
</Person>
<Person>
<nom>Nasr</nom>
<Age>14</Age>
</Person>
<Person>
<nom>Souad</nom>
<Age>52</Age>
</Person>
</Persons>
Наиболее вероятная причина — использование doc.child («Персоны»).
Объект документа в вашем случае имеет один дочерний объект Person, который имеет несколько дочерних объектов Person. doc.child («Person») не может найти узел и возвращает нулевой дескриптор.
Сказав это, не забудьте также проверить возвращаемое значение load_file.
Других решений пока нет …