次の構造のかなり複雑な XML ファイルを解析しています。
<ルート>
...
...
<アイテム>
<サブアイテム id="1"/>
<テキスト> テキスト
1
</テキスト>
</アイテム>
<アイテム>
<サブアイテム id="2"/>
<テキスト> テキスト
2
< /テキスト>
</アイテム>
...
<アイテム>
...
</アイテム>
...
</ルート>
かなり大雑把ですが、私のドリフトを理解していただければ幸いです。私は主に「アイテム」ノードに興味があります。そこで、次のコードを書きました (Qt のオンライン マニュアルから直接):
QXmlQuery query;
query.setQuery("//item/");
QXmlResultItems result;
query.evaluateTo(&result);
QXmlItem item(result.next());
while (!item.isNull())
{
if (item.isNode())
{
// WHAT DO I DO NOW?
}
item = result.next();
}
QXmlItem は、リテラル値 (文字列など) またはノード (item.isNode() が行っていること) の 2 つの概念を表しているように見えます。残念ながら、QXmlItem を再度クエリ可能なものに変換する方法がわかりません。特に上記の例から、「id」属性とテキスト要素を取得したいと思います。XQuery アプローチを使用してこれを行うことはできますか?
何かアドバイス?
ありがとう!