Spec-Zone.ru › Qt 5.11

Класс QXmlInputSource

Класс QXmlInputSource предоставляет входные данные для подклассов QXmlReader. Подробнее...

Заголовок: #include <QXmlInputSource>
qmake: QT += xml
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Открытые функции

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)

Подробное описание

Класс QXmlInputSource предоставляет входные данные для подклассов QXmlReader.

Все подклассы QXmlReader считывают входной XML-документ из этого класса.

Этот класс распознаёт кодировку данных, считывая объявление кодировки в XML-файле, если оно найдено, и считывает данные с соответствующей кодировкой. Если объявление кодировки не найдено, то предполагается, что данные находятся либо в UTF-8, либо в UTF-16, в зависимости от того, найдена ли метка порядка байтов.

Есть два способа заполнения источника входных данных: можно создать его с QIODevice*, чтобы источник входных данных считывал данные из этого устройства. Или можно явно задать данные с помощью одной из функций setData().

Обычно вы создаёте QXmlInputSource, который работает с QIODevice*, или создаёте пустой QXmlInputSource и устанавливаете данные с помощью setData(). Редко бывает необходимо смешивать оба метода.

Подклассы QXmlReader используют функцию next() для считывания входного символа за символом. Если вы хотите начать сначала, используйте reset().

Функции data() и fetchData() полезны, если вы хотите что-то сделать с данными, кроме разбора, например, отобразить исходный XML-файл. Преимущество использования QXmlInputClass в таких случаях заключается в том, что он пытается использовать правильную кодировку.

См. также QXmlReader и QXmlSimpleReader.

Документация по функциям-членам

QXmlInputSource::QXmlInputSource()

Создаёт источник входных данных, не содержащий данных.

См. также setData().

QXmlInputSource::QXmlInputSource(QIODevice *dev)

Создаёт источник входных данных и получает данные из устройства dev. Если dev не открыт, он открывается в режиме только для чтения. Если dev равен 0 или невозможно читать из устройства, источник входных данных не будет содержать данных.

См. также setData(), fetchData() и QIODevice.

[virtual] QXmlInputSource::~QXmlInputSource()

Деструктор.

[virtual] QString QXmlInputSource::data() const

Возвращает данные, содержащиеся в источнике входных данных, или пустую строку, если источник входных данных не содержит никаких данных.

См. также setData(), QXmlInputSource() и fetchData().

[virtual] void QXmlInputSource::fetchData()

Эта функция считывает больше данных из устройства, заданного во время создания. Если источник входных данных уже содержал данные, эта функция сначала удаляет эти данные.

Этот объект не содержит данных после вызова этой функции, если объект был создан без устройства для чтения данных или если эта функция не смогла получить больше данных из устройства.

Есть два случая, когда вызов fetch выполняется неявно другим вызовом функции: во время создания (чтобы объект изначально содержал некоторые начальные данные, где это возможно), и во время вызова next() (если данные закончились).

Обычно вам не нужно использовать эту функцию, если вы используете next().

См. также data(), next() и QXmlInputSource().

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

Эта функция считывает XML-файл из data и пытается распознать кодировку. Она преобразует сырые данные data в QString и возвращает его. Она делает всё возможное, чтобы получить правильную кодировку для XML-файла.

Если beginning имеет значение true, эта функция предполагает, что данные начинаются с начала нового XML-документа и ищет объявление кодировки. Если beginning имеет значение false, она преобразует сырые данные с помощью кодировки, определённой предыдущими вызовами.

[virtual] QChar QXmlInputSource::next()

Возвращает следующий символ из источника входных данных. Если эта функция достигает конца доступных данных, она возвращает QXmlInputSource::EndOfData. Если вы вызовите next() после этого, она попытается загрузить больше данных, вызвав fetchData(). Если вызов fetchData() приводит к новым данным, эта функция возвращает первый символ этих данных; в противном случае она возвращает QXmlInputSource::EndOfDocument.

Читатели, такие как QXmlSimpleReader, будут предполагать, что конец XML-документа достигнут, если эта функция возвращает QXmlInputSource::EndOfDocument, и проверят, что предоставленный ввод является хорошо сформированным. Поэтому при переопределении этой функции важно обеспечить дублирование этого поведения.

См. также 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 передаются через правильный кодек символов, прежде чем они будут установлены.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qxmlinputsource.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API