0

QXmlStreamReader ::isEndElement()がfalse を返すのはなぜですか?<element/><element/>

4

2 に答える 2

0

あなたの質問に答えるために、Qtのドキュメントは空の要素についてこれを述べています.QXmlStreamReader::StartElementのセクションを参照してください. これを達成するには、する必要があります。

'QXmlStreamReader::readNextStartElement()' に関する Qt のドキュメントには次のように書かれています。空の要素も StartElement として報告され、その後に EndElement が続きます。 便利な関数 readElementText() を呼び出して、対応する EndElement まですべてのコンテンツを連結できます。属性は attributes() で報告され、名前空間宣言は namespaceDeclarations() で報告されます。

そのため、「QXmlStreamReader::readNextStartElement()」の Qt のドキュメントの強調表示された部分を参照してください。

<empty/>
<empty></empty>

上記は空のタグの例の 2 つのセットであり、技術的には同じです。

したがって、タグ「空」の開始要素を取得するには、この方法で関数の下を呼び出す必要があります。

QXmlStreamReader::readNextStartElement()

次に、指定された開始要素の終了要素に移動する以下の関数を呼び出す必要があります。

QXmlStreamReader::readElementText()

以下の関数を呼び出すと、trueが返されます

QXmlStreamReader::isEndElement()

それにはさらに複雑な問題があり、これは完全な解決策ではありませんが、この問題に直面したときにいくつかの試行錯誤の末にそれを理解しました.

于 2019-07-12T12:27:47.073 に答える