XML ストリーミング

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

ストリーム・リーダーは、XMLドキュメントをトークンのストリームとして報告します。SAXアプリケーションはパーサからXMLイベントを受け取るハンドラを提供するのに対して、QXmlStreamReader 、必要なときにリーダからトークンを引き出してループを駆動するので、これはSAXとは異なります。このプル・アプローチにより、再帰的降下パーサーを構築することが可能になり、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 クラスの使用方法については、実装を参照してください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。