QXmlReader类

QXmlReader类提供了一个用于XML读取器(即解析器)的接口。更多...

头文件 #include <QXmlReader>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmakeQT += 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 boolfeature(const QString &;《i》name&;《i》;bool *《i》ok&;《i》;= nullptr) const = 0
virtual boolhasFeature(const QString &;《i》name&;《i》) const = 0
virtual boolhasProperty(const QString &;《i》name&;《i》) const = 0
virtual QXmlLexicalHandler *lexicalHandler() const = 0
virtual boolparse(const QXmlInputSource *《i》input<;《i》;) = 0
virtual void *property(const QString &;《i》name&;《i》;bool *《i》ok&;《i》;= nullptr) const = 0
virtual voidsetContentHandler(QXmlContentHandler *《i》handler<;《i》;) = 0
virtual voidsetDTDHandler(QXmlDTDHandler *《i》handler<;《i》;)
virtual voidsetDeclHandler(QXmlDeclHandler *《i》handler<;《i》;)
virtual voidsetEntityResolver(QXmlEntityResolver *《i》handler<;《i》;)
virtual voidsetErrorHandler(QXmlErrorHandler *《i》handler<;《i》;)
virtual voidsetFeature(const QString &;《i》name&;《i》;bool 《i》value<;《i》;) = 0
virtual voidsetLexicalHandler(QXmlLexicalHandler *《i》handler<;《i》;)
virtual voidsetProperty(const QString &;《i》name&;《i》;void *《i》value<;《i》;)

详细描述

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

XML类的设计遵循SAX2 Java接口,并调整名称以符合Qt命名约定。对于曾经使用过SAX2的开发者来说,开始使用Qt XML类应该非常简单。

所有读取器都使用QXmlInputSource类来读取输入文档。由于您通常只对XML文档中的特定内容感兴趣,读取器通过特殊处理程序类(QXmlDTDHandlerQXmlDeclHandlerQXmlContentHandlerQXmlEntityResolverQXmlErrorHandlerQXmlLexicalHandler)来报告内容,如果您想处理内容,则必须扩展这些类。

由于处理程序类仅描述接口,您必须实现所有函数。我们提供QXmlDefaultHandler类以简化此过程:它为所有函数实现默认行为(不执行任何操作),因此您可以扩展它并仅实现您感兴趣的函数。

可以使用setFeature()和setProperty()分别设置读取器的功能和属性。您可以使用setEntityResolver()、setDTDHandler()、setContentHandler()、setErrorHandler()、setLexicalHandler()和setDeclHandler()将读取器设置为使用您的子类。通过调用parse()启动解析本身。

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

另请参阅QXmlSimpleReader

成员函数文档

[虚拟 noexcept] QXmlReader::~QXmlReader()

销毁读取器。

[纯虚] QXmlDTDHandler *QXmlReader::DTDHandler() const

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

另请参阅setDTDHandler

[纯虚] QXmlContentHandler *QXmlReader::contentHandler() const

返回内容处理程序,如果没有设置,则返回nullptr

另请参阅setContentHandler

[纯虚] QXmlDeclHandler *QXmlReader::declHandler() const

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

另请参阅setDeclHandler

[纯虚] QXmlEntityResolver *QXmlReader::entityResolver() const

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

另请参阅setEntityResolver

[纯虚] QXmlErrorHandler *QXmlReader::errorHandler() const

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

另请参阅setErrorHandler

纯虚函数

bool QXmlReader::feature(const QString &name, bool *ok = nullptr) const

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

如果 ok 不为 nullptr: 如果读取器具有名为 name 的功能,则将 *ok 设置为 true;否则将 *ok 设置为 false。

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

纯虚函数

bool QXmlReader::hasFeature(const QString &name) const

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

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

纯虚函数

bool QXmlReader::hasProperty(const QString &name) const

如果读取器具有名为 name 的属性,则返回 true; 否则返回 false

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

纯虚函数

QXmlLexicalHandler *QXmlReader::lexicalHandler() const

返回词法处理器或 nullptr(如果没有设置)。

另请参阅setLexicalHandler()。

纯虚函数

bool QXmlReader::parse(const QXmlInputSource *input)

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

纯虚函数

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

如果读取器具有名为 name 的属性,则此函数返回属性值;否则返回值未定义。

如果 ok 不为 nullptr: 如果读取器具有 name 属性,则将 *ok 设置为 true;否则将 *ok 设置为 false。

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

纯虚函数

void QXmlReader::setContentHandler(QXmlContentHandler *handler)

将内容处理器设置为 handler

另请参阅contentHandler()。

[纯虚函数] void QXmlReader::setDTDHandler(QXmlDTDHandler *handler)

设置DTD处理器为handler

另请参阅DTDHandler()。

[纯虚函数] void QXmlReader::setDeclHandler(QXmlDeclHandler *handler)

设置声明处理器为handler

另请参阅declHandler()。

[纯虚函数] void QXmlReader::setEntityResolver(QXmlEntityResolver *handler)

设置实体解析器为handler

另请参阅entityResolver()。

[纯虚函数] void QXmlReader::setErrorHandler(QXmlErrorHandler *handler)

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

另请参阅errorHandler()。

[纯虚函数] void QXmlReader::setFeature(const QString &name, bool value)

将名为name的功能设置为给定的value。如果读取器没有该功能,则不发生任何事情。

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

[纯虚函数] void QXmlReader::setLexicalHandler(QXmlLexicalHandler *handler)

设置词法处理器为handler

另请参阅lexicalHandler()。

[纯虚函数] void QXmlReader::setProperty(const QString &name, void *value)

将属性name设置为value。如果读取器没有该属性,则不发生任何事情。

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

© 2024 Qt公司有限公司。此处包含的文档贡献是该所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3许可的。Qt及其相应的标志是芬兰及其它国家全球范围内的注册商标。所有其他商标均为其所有者所有。