XML ファイルの読み取りに関して質問があります。
<table>
<100000 />
<100001 name="void" type="ref" cat="ref"/>
<100002 name="noref" type="err" cat="ref"/>
<100003 name="notype" type="err" cat="ref"/>
<100004 name="nostring" type="err" cat="ref"/>
<100005 name="noobj" type="err" cat="ref"/>
</table>
子要素のすべての名前 (100000 - 100005) の QList が必要ですが、属性値は省略します。
これまでの私のコードは次のとおりです。
QList<QString> xmlActions::GetXMLID (QFile *XMLIndex)
{
QList<QString> xList;
if (XMLIndex->open(QIODevice::ReadOnly))
{
QXmlStreamReader reader (XMLIndex->readAll());
XMLIndex->close();
while(!reader.atEnd() && !reader.hasError())
{
QXmlStreamReader::TokenType token = reader.readNext();
if(token == QXmlStreamReader::StartElement)
{
if(reader.name().toString() == QLatin1String("table"))
{
continue;
}
xList << reader.name().toString();
}
}
}
return xList;
}
空のリストしか取得しません。これをコメントアウトすると:
if(reader.name().toString() == QLatin1String("table"))
{
continue;
}
リストに含まれているのは「テーブル」(開始要素) だけです。これは非常に単純かもしれないと思いますが、わかりません。