1

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>
4

1 に答える 1

2

最も可能性の高い原因は、doc.child("Persons") を使用する必要があることです。

あなたの場合の Document オブジェクトには、複数の Person 子を持つ 1 つの子 Person があります。doc.child("Person") はノードの検索に失敗し、null ハンドルを返します。

そうは言っても、load_file の戻り値も確認することを忘れないでください。

于 2013-03-29T02:51:49.630 に答える