2013-03-28 132 views
1

我有解析使用pugiXml XML文檔有問題的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> 
+1

你是什麼意思的「代碼不起作用」?而當你使用Qt時,你爲什麼不使用Qt的XML特性? – 2013-03-28 19:21:16

回答

2

最可能的原因是,你應該使用doc.child(「人」)。在你的情況

Document對象有一個孩子的人,也有幾個人兒童。doc.child(「PE rson「)無法找到節點並返回空句柄。

話雖如此,別忘了檢查load_file的返回值。