2
Qt QXmlStreamReaderに奇妙な問題があります。このコードを使用してQT:QXmlStreamReaderは常に "早すぎるEnd of Document"エラーを返します
<?xml version="1.0" encoding="UTF-8"?>
<tex>
<used_by/>
<facade>
<tags>
<town_related></town_related>
<zone_related></zone_related>
<visual_related></visual_related>
<kind_related></kind_related>
<other>flamingo</other>
</tags>
<additional_textures>
<id>flamingo_top.psd</id>
</additional_textures>
</facade>
</tex>
:簡単な文書を解析しようI'am(注意:これはQXmlStreamWriterを使用して生成される)
QFile file(filename);
if (file.open(QFile::ReadOnly | QFile::Text))
{
QXmlStreamReader xmlReader(&file);
while (xmlReader.readNextStartElement())
{
/* same issue when uncommented:
if (xmlReader.name() == "tex")
t->readXml(xmlReader);//parse texture
else*/
xmlReader.skipCurrentElement();
}
if (xmlReader.hasError())
emit reportError(xmlReader.errorString());
}
...
そして、それは常にエラー「ドキュメントの早すぎる終了」を報告します。どうして? debbugingは、すべての要素が正しく解析またはスキップされているようです。
私は、問題は、あなたが文書の最後に達したことを確認することはありませんしていている疑いがあります。次の要素を読む前に、[atEnd()](http://doc.qt.io/qt-5/qxmlstreamreader.html#atEnd)を呼び出してみてください。 – MrEricSir
コメントありがとうございました。しかし、私はこれが解決策ではないと思います。 whileループ条件でatEnd()を使用すると、結果は同じですが、不幸です。 –