QXmlReader Class

QXmlReader 类为 XML 阅读器(即解析器)提供了一个接口。更多

头文件: #include <QXmlReader>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
继承于

QXmlSimpleReader

注意:该类中的所有函数都是可重入的

公共函数

virtual ~QXmlReader()
virtual QXmlDTDHandler *DTDHandler() const = 0
virtual QXmlContentHandler *contentHandler() const = 0
virtual QXmlDeclHandler *declHandler() const = 0
virtual QXmlEntityResolver *entityResolver() const = 0
virtual QXmlErrorHandler *errorHandler() const = 0
virtual bool feature(const QString &name, bool *ok = nullptr) const = 0
virtual bool hasFeature(const QString &name) const = 0
virtual bool hasProperty(const QString &name) const = 0
virtual QXmlLexicalHandler *lexicalHandler() const = 0
virtual bool parse(const QXmlInputSource *input) = 0
virtual void *property(const QString &name, bool *ok = nullptr) const = 0
virtual void setContentHandler(QXmlContentHandler *handler) = 0
virtual void setDTDHandler(QXmlDTDHandler *handler) = 0
virtual void setDeclHandler(QXmlDeclHandler *handler) = 0
virtual void setEntityResolver(QXmlEntityResolver *handler) = 0
virtual void setErrorHandler(QXmlErrorHandler *handler) = 0
virtual void setFeature(const QString &name, bool value) = 0
virtual void setLexicalHandler(QXmlLexicalHandler *handler) = 0
virtual void setProperty(const QString &name, void *value) = 0

详细说明

该抽象类为 Qt 的所有 XML 阅读器提供了一个接口。目前,Qt XML 模块中只包含一个阅读器的实现:QXmlSimpleReader.在未来的版本中,可能会有更多具有不同属性的阅读器(如验证解析器)。

XML 类的设计遵循SAX2 Java 接口,名称经过调整以符合 Qt Designer 的命名约定。任何使用过 SAX2 的人都可以很容易地开始使用Qt XML 类。

所有阅读器都使用QXmlInputSource 类来阅读输入文档。由于您通常对 XML 文档中的特定内容感兴趣,因此阅读器会通过特殊的处理程序类(QXmlDTDHandler,QXmlDeclHandler,QXmlContentHandler,QXmlEntityResolver,QXmlErrorHandlerQXmlLexicalHandler )报告这些内容,如果您想处理这些内容,就必须子类化这些处理程序类。

由于处理程序类只描述了接口,因此您必须实现所有功能。我们提供了QXmlDefaultHandler 类来简化这一过程:它为所有函数实现了默认行为(什么也不做),因此您可以子类化它,只需实现您感兴趣的函数即可。

阅读器的功能和属性可分别通过setFeature() 和setProperty() 设置。您可以通过setEntityResolver(),setDTDHandler(),setContentHandler(),setErrorHandler(),setLexicalHandler() 和setDeclHandler() 设置阅读器使用自己的子类。解析本身是通过调用 parse() 开始的。

请注意,该类现已废弃,请使用QXmlStreamReader 或 QDomDocument 来读取 XML 文件。

另请参阅 QXmlSimpleReader

成员函数文档

[virtual noexcept] QXmlReader::~QXmlReader()

摧毁读者。

[pure virtual] QXmlDTDHandler *QXmlReader::DTDHandler() const

返回 DTD 处理程序,如果未设置,则返回nullptr

另请参阅 setDTDHandler().

[pure virtual] QXmlContentHandler *QXmlReader::contentHandler() const

返回内容处理程序;如果未设置内容处理程序,则返回nullptr

另请参阅 setContentHandler().

[pure virtual] QXmlDeclHandler *QXmlReader::declHandler() const

返回声明处理程序,如果未设置,则返回nullptr

另请参阅 setDeclHandler().

[pure virtual] QXmlEntityResolver *QXmlReader::entityResolver() const

返回实体解析器,如果未设置,则返回nullptr

另请参见 setEntityResolver()。

[pure virtual] QXmlErrorHandler *QXmlReader::errorHandler() const

返回错误处理程序,如果未设置,则返回nullptr

另请参阅 setErrorHandler().

[pure virtual] bool QXmlReader::feature(const QString &name, bool *ok = nullptr) const

如果阅读器具有名为name 的功能,则返回该功能的值。如果不存在该功能,则返回值未定义。

如果ok 不是nullptr*ok ,如果阅读器具有名为name 的功能,则返回值为 true;否则*ok ,返回值为 false。

另请参阅 setFeature() 和hasFeature()。

[pure virtual] bool QXmlReader::hasFeature(const QString &name) const

如果阅读器具有名为name 的功能,则返回true ;否则返回false

另请参阅 feature() 和setFeature()。

[pure virtual] bool QXmlReader::hasProperty(const QString &name) const

如果读者具有name 属性,则返回true ;否则返回false

另请参见 property() 和setProperty()。

[pure virtual] QXmlLexicalHandler *QXmlReader::lexicalHandler() const

返回词法处理程序;如果未设置词法处理程序,则返回nullptr

另请参阅 setLexicalHandler().

[pure virtual] bool QXmlReader::parse(const QXmlInputSource *input)

input 读取 XML 文档并进行解析。如果解析成功,则返回true ;否则返回false

[pure virtual] void *QXmlReader::property(const QString &name, bool *ok = nullptr) const

如果阅读器具有name 属性,则该函数返回该属性的值;否则返回值未定义。

如果ok 不是nullptr :如果读者有name 属性,*ok 设置为 true;否则*ok 设置为 false。

另请参阅 setProperty() 和hasProperty()。

[pure virtual] void QXmlReader::setContentHandler(QXmlContentHandler *handler)

将内容处理程序设置为handler

另请参阅 contentHandler() 。

[pure virtual] void QXmlReader::setDTDHandler(QXmlDTDHandler *handler)

将 DTD 处理程序设置为handler

另请参阅 DTDHandler() 。

[pure virtual] void QXmlReader::setDeclHandler(QXmlDeclHandler *handler)

将声明处理程序设置为handler

另请参阅 declHandler() 。

[pure virtual] void QXmlReader::setEntityResolver(QXmlEntityResolver *handler)

将实体解析器设置为handler

另请参阅 entityResolver() 。

[pure virtual] void QXmlReader::setErrorHandler(QXmlErrorHandler *handler)

将错误处理程序设置为handler 。如果handler 为 0,则清除错误处理程序。

另请参阅 errorHandler().

[pure virtual] void QXmlReader::setFeature(const QString &name, bool value)

name 设置为给定的value 。如果读者没有该功能,则不会发生任何情况。

另请参阅 feature() 和hasFeature() 。

[pure virtual] void QXmlReader::setLexicalHandler(QXmlLexicalHandler *handler)

将词法处理程序设置为handler

另请参阅 lexicalHandler() 。

[pure virtual] void QXmlReader::setProperty(const QString &name, void *value)

name 属性设置为value 。如果阅读器没有该属性,则什么也不会发生。

另请参阅 property() 和hasProperty() 。

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