Spec-Zone.ru › Qt 5.13

Класс QXmlSerializer

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

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

QXmlFormatter

Этот класс был представлен в Qt 4.4.

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

Примечание: Все функции этого класса являются взаимоисключающими.

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

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

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

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

Переопределяет: QAbstractXmlReceiver::atomicValue(const QVariant &value).

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

Переопределяет: QAbstractXmlReceiver::attribute(const QXmlName &name, const QStringRef &value).

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

Переопределяет: QAbstractXmlReceiver::characters(const QStringRef &value).

const QTextCodec *QXmlSerializer::codec() const

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

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

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

Переопределяет: QAbstractXmlReceiver::comment(const QString &value).

[override virtual] void QXmlSerializer::endDocument()

Переопределяет: QAbstractXmlReceiver::endDocument().

[override virtual] void QXmlSerializer::endElement()

Переопределяет: QAbstractXmlReceiver::endElement().

[override virtual] void QXmlSerializer::endOfSequence()

Переопределяет: QAbstractXmlReceiver::endOfSequence().

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

Переопределяет: QAbstractXmlReceiver::namespaceBinding(const QXmlName &name).

QIODevice *QXmlSerializer::outputDevice() const

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

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

Переопределяет: QAbstractXmlReceiver::processingInstruction(const QXmlName &target, const QString &value).

void QXmlSerializer::setCodec(const QTextCodec *outputCodec)

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

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

[override virtual] void QXmlSerializer::startDocument()

Реализация: QAbstractXmlReceiver::startDocument().

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

Реализация: QAbstractXmlReceiver::startElement(const QXmlName &name).

[override virtual] void QXmlSerializer::startOfSequence()

Реализация: QAbstractXmlReceiver::startOfSequence().

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

Spec-Zone.ru

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