Spec-Zone.ru › Qt 5.11

Класс QXmlSerializer

Класс QXmlSerializer — это реализация класса QAbstractXmlReceiver для преобразования выходных данных XQuery в неформатированный XML. Подробнее...

Заголовок: #include <QXmlSerializer>
qmake: QT += xmlpatterns
С версии: Qt 4.4
Наследует: QAbstractXmlReceiver
Наследуется:

QXmlFormatter

  • Список всех членов, включая унаследованные

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

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

QXmlSerializer(const QXmlQuery &query, QIODevice *outputDevice)
const QTextCodec * codec() const
QIODevice * outputDevice() const
void setCodec(const QTextCodec *outputCodec)

Переопределённые открытые функции

virtual void atomicValue(const QVariant &value) override
virtual void attribute(const QXmlName &name, const QStringRef &value) override
virtual void characters(const QStringRef &value) override
virtual void comment(const QString &value) override
virtual void endDocument() override
virtual void endElement() override
virtual void endOfSequence() override
virtual void namespaceBinding(const QXmlName &nb) override
virtual void processingInstruction(const QXmlName &name, const QString &value) override
virtual void startDocument() override
virtual void startElement(const QXmlName &name) override
virtual void startOfSequence() override

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

Класс QXmlSerializer — это реализация класса QAbstractXmlReceiver для преобразования выходных данных XQuery в неформатированный XML.

QXmlSerializer преобразует последовательность XQuery, обычно выход QXmlQuery, в XML. Рассмотрим пример:

QXmlQuery query;
query.setQuery("doc('index.html')/html/body/p[1]");

QXmlSerializer serializer(query, myOutputDevice);
query.evaluateTo(&serializer);

Сначала создаётся запрос, который извлекает первый абзац из документа index.html. Затем создаётся экземпляр этого класса с указанным запросом и myOutputDevice. Наконец, выполняется оценка запроса, что приводит к последовательности вызовов функций обратного вызова сериализатора. Последовательность обратных вызовов преобразует выходные данные запроса в XML и записывает их в myOutputDevice.

QXmlSerializer будет:

  • Объявлять пространства имён при необходимости,
  • Использовать соответствующее экранирование, если символы не могут быть представлены в XML,
  • Правильно обрабатывать окончания строк,
  • Сообщать об ошибках, если невозможно выполнить сериализацию содержимого, например, при попытке сериализации атрибута, являющегося узлом верхнего уровня, или при обнаружении более одного элемента верхнего уровня.

Если при сериализации произошла ошибка, результат не определён, за исключением случаев, когда сериализатор вызван через QXmlQuery::evaluateTo().

Если сгенерированный XML должен быть отформатирован и отступом для чтения, используйте QXmlFormatter.

См. также Сериализация XSLT 2.0 и XQuery 1.0 и QXmlFormatter.

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

QXmlSerializer::QXmlSerializer(const QXmlQuery &query, QIODevice *outputDevice)

Создаёт сериализатор, использующий пул имён и обработчик сообщений из query, и записывает выходные данные в outputDevice.

outputDevice должен быть допустимым и не нулевым устройством, открытым в режиме записи, иначе поведение не определено.

outputDevice не должен быть открыт с QIODevice::Text, так как это приведёт к неправильным результатам. Этот класс гарантирует, что окончания строк сериализуются в соответствии со спецификацией XML. QXmlSerializer не принимает на себя ответственность за outputDevice.

[override virtual] void QXmlSerializer::atomicValue(const QVariant &value)

[override virtual] void QXmlSerializer::attribute(const QXmlName &name, const QStringRef &value)

[override virtual] void QXmlSerializer::characters(const QStringRef &value)

const QTextCodec *QXmlSerializer::codec() const

Возвращает кодек, используемый сериализатором для кодирования выходных данных XML.

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

[override virtual] void QXmlSerializer::comment(const QString &value)

[override virtual] void QXmlSerializer::endDocument()

[override virtual] void QXmlSerializer::endElement()

[override virtual] void QXmlSerializer::endOfSequence()

[override virtual] void QXmlSerializer::namespaceBinding(const QXmlName &nb)

QIODevice *QXmlSerializer::outputDevice() const

Возвращает указатель на устройство вывода. Нет соответствующей функции для *установки* устройства вывода, так как устройство вывода должно быть передано в конструктор. Сериализатор не принимает на себя ответственность за устройство ввода/вывода.

[override virtual] void QXmlSerializer::processingInstruction(const QXmlName &name, const QString &value)

void QXmlSerializer::setCodec(const QTextCodec *outputCodec)

Устанавливает кодек, который сериализатор будет использовать для кодирования выходных данных XML. Кодек вывода устанавливается в outputCodec. По умолчанию кодек вывода устанавливается на кодек для UTF-8. Сериализатор не принимает на себя ответственность за кодек.

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

[override virtual] void QXmlSerializer::startDocument()

[override virtual] void QXmlSerializer::startElement(const QXmlName &name)

[override virtual] void QXmlSerializer::startOfSequence()

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

Spec-Zone.ru

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