QXmlInputSource Class
QXmlInputSource クラスは、QXmlReader サブクラスの入力データを提供します。詳細...
Header: | #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ファイルを読み込み、エンコーディングを認識しようとする。生データdata をQString に変換し、それを返します。この関数は、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 は、設定される前に、正しいテキストコーデックを通して渡されます。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。