我在使用pugiXml解析xml文档时遇到问题,在我看来一切都正确但是这段代码不起作用:(
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>
答案 0 :(得分:2)
最可能的原因是你应该使用doc.child(“人物”)。
您案例中的文档对象有一个子Persons,有几个Person子。 doc.child(“Person”)无法找到节点并返回空句柄。
话虽如此,不要忘记检查load_file返回值。