XML ストリーミング

Qt には、シンプルなストリーミング API を使って XML を読み書きするためのクラスがQXmlStreamReaderQXmlStreamWriter の 2 つあります。これらのクラスはQt Serialization (QtCore の一部) にあります。

ストリーム・リーダーは、XMLドキュメントをトークンのストリームとして報告します。SAXアプリケーションはパーサからXMLイベントを受け取るハンドラを提供するのに対して、QXmlStreamReader 、ループを駆動し、必要なときにリーダーからトークンを引き出します。このプル・アプローチにより、再帰的降下パーサーを構築することが可能になり、XML解析コードを異なるメソッドやクラスに分割することができる。

QXmlStreamReader は整形式のXML 1.0パーサーであり、外部の解析済みエンティティは除外される。したがって、ストリーム・リーダーから提供されるデータは、エラーが発生しない限り、W3Cの整形式XMLの基準に準拠する。そうでない場合は、 ()、 ()、 () などの関数を使用して、エラーをチェックして表示することができる。atEnd error hasError

QXmlStreamReader を使用する実装の例として、QXmlStream Bookmarks ExampleXbelReaderがあります。QXmlStreamReader をラップしています。QXmlStreamReader クラスの使用方法については、実装をお読みください。

QXmlStreamReader と対になるのがQXmlStreamWriter クラスで、シンプルなストリーミング API を備えた XML ライターを提供します。QXmlStreamWriterQIODevice を操作し、writeDTD()、writeCharacters()、writeComment() など、書きたい XML トークンやイベントすべてに特化した関数を持っています。

XML 文書をQXmlStreamWriter で記述するには、writeStartDocument() 関数で文書を開始し、writeEndDocument() 関数で文書を終了します。この関数は、開いている残りのタグをすべて暗黙的に閉じます。要素タグはwriteStartDocument ()で開き、writeAttribute ()またはwriteAttributes ()、要素コンテンツ、writeEndDocument ()の順に続きます。また、writeEmptyElement ()を使用して、空の要素を記述することもできます。

要素内容は、文字、実体参照、入れ子要素から構成されます。コンテンツは、writeCharacters ()、writeEntityReference ()、writeStartElement ()を呼び出すことで、禁則文字や文字シーケンスのエスケープも行うことができます。

QXmlStream Bookmarks ExampleXbelWriterクラスは、QXmlStreamWriter をラップしています。QXmlStreamWriter クラスの使用方法については、実装を参照してください。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.