QXmlInputSource Class

QXmlInputSource クラスは、QXmlReader サブクラスの入力データを提供します。詳細...

ヘッダー #include <QXmlInputSource>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QXmlInputSource()
QXmlInputSource(QIODevice *dev)
virtual ~QXmlInputSource()
virtual QString data() const
virtual void fetchData()
virtual QChar next()
virtual void reset()
virtual void setData(const QString &dat)
virtual void setData(const QByteArray &dat)

保護された関数

virtual QString fromRawData(const QByteArray &data, bool beginning = false)

詳細説明

QXmlReader のすべてのサブクラスは、このクラスから入力 XML ドキュメントを読み込みます。

このクラスは、XML ファイルにエンコーディング宣言があればそれを読み込み、対応するエンコーディングを使ってデータを読み込むことで、データのエンコーディングを認識します。エンコーディング宣言が見つからない場合は、バイトオーダーマークがあるかどうかによって UTF-8 または UTF-16 のデータであると判断します。

入力ソースにデータを入力するには2つの方法がある。QIODevice* を使って入力ソースを構築し、入力ソースがそのデバイスからデータを読み込むようにする方法だ。または、setData() 関数のいずれかを使用して明示的にデータを設定することもできます。

通常は、QIODevice* で動作する QXmlInputSource を作成するか、空の QXmlInputSource を作成してsetData() でデータを設定します。両方のメソッドを混在させたいケースはまれです。

QXmlReader サブクラスは、next() 関数を使用して、入力を 1 文字ずつ読み取ります。もう一度最初から始めたい場合は、reset ()を使用する。

関数data() およびfetchData() は、生の XML ファイルを表示するなど、パース以外の処理を行いたい場合に便利です。このような場合に QXmlInputClass を使用する利点は、正しいエンコーディングを使用しようとすることです。

QXmlReader およびQXmlSimpleReaderも参照して ください。

メンバ関数のドキュメント

QXmlInputSource::QXmlInputSource()

データを含まない入力ソースを構築します。

setData()も参照してください

[explicit] QXmlInputSource::QXmlInputSource(QIODevice *dev)

入力ソースを構築し、デバイスdev からデータを取得する。dev がオープンされていない場合、読み取り専用モードでオープンされる。dev が 0 の場合、またはデバイスから読み取れない場合、入力ソースにはデータが含まれません。

setData()、fetchData()、QIODeviceも参照のこと

[virtual noexcept] QXmlInputSource::~QXmlInputSource()

破壊者。

[virtual] QString QXmlInputSource::data() const

入力ソースに含まれるデータ、または入力ソースにデータがない場合は空の文字列を返します。

setData()、QXmlInputSource()、およびfetchData()も参照してください

[virtual] void QXmlInputSource::fetchData()

この関数は、構築時に設定されたデバイスからさらにデータを読み込む。入力ソースに既にデータが含まれていた場合、この関数はまずそのデータを削除します。

オブジェクトがデータを読み込むデバイスなしで構築された場合、またはこの関数がデバイスからデータを取得できなかった場合、このオブジェクトはこの関数の呼び出し後にデータを持ちません。

他の関数の呼び出しによって暗黙的に取得が行われる場合としては、構築時(オブジェクトが利用可能な初期データで開始されるようにする)と、next ()の呼び出し時(データがなくなった場合)の2つがあります。

next() を使用する場合は、通常この関数を使用する必要はない。

data()、next()、QXmlInputSource()も参照

[virtual protected] QString QXmlInputSource::fromRawData(const QByteArray &data, bool beginning = false)

この関数は、data からXMLファイルを読み込み、エンコーディングを認識しようとする。生データdataQString に変換して返します。この関数は、XMLファイルの正しいエンコーディングを取得しようと最善を尽くします。

beginning が真の場合、この関数はデータが新しいXML文書の先頭から始まると仮定し、エンコーディング宣言を探します。beginning が偽の場合、以前の呼び出しで決定されたエンコーディングを使用して生データを変換します。

[virtual] QChar QXmlInputSource::next()

入力ソースの次の文字を返します。この関数は、使用可能なデータの最後に達すると、QXmlInputSource::EndOfData を返します。その後に next() を呼び出すと、fetchData() を呼び出して、さらにデータを取得しようとします。fetchData() を呼び出した結果、新しいデータが得られた場合は、この関数はそのデータの最初の文字を返します。そうでない場合は、QXmlInputSource::EndOfDocument を返します。

QXmlSimpleReader などのリーダーは、この関数が QXmlInputSource::EndOfDocument を返した場合、XML ドキュメントの最後に到達したとみなし、与えられた入力が整形式であるかどうかをチェックします。したがって、この関数を再実装する場合は、この動作が重複しないようにすることが重要です。

reset(),fetchData(),QXmlSimpleReader::parse(),QXmlSimpleReader::parseContinue()も参照して ください。

[virtual] void QXmlInputSource::reset()

この関数は、next ()で使用される位置を、data ()で返 されるデータの先頭に設定する。これは、入力ソースを複数の解析に使用する場合に便利です。

注意: 基礎となるデータ・ソースがQIODevice の場合、デバイス内の現在位置は入力の開始位置には自動 的に設定されません。これを行うには、デバイス上でQIODevice::seek(0) を呼び出す。

next()も参照のこと

[virtual] void QXmlInputSource::setData(const QString &dat)

入力ソースのデータをdat に設定する。

入力ソースに既にデータが含まれている場合、この関数はまずそのデータを削除します。

data()も参照してください

[virtual] void QXmlInputSource::setData(const QByteArray &dat)

これはオーバーロードされた関数である。

データdat は、設定される前に、正しいテキストコーデックを通して渡される。

© 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.