QXmlReader类
QXmlReader类提供了一个用于XML读取器(即解析器)的接口。更多...
头文件 | #include <QXmlReader> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake | QT += core5compat |
继承自 |
注意:本类中所有函数都是 可重入的。
公共函数
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 &;《i》name&;《i》;bool *《i》ok&;《i》;= nullptr) const = 0 |
virtual bool | hasFeature(const QString &;《i》name&;《i》) const = 0 |
virtual bool | hasProperty(const QString &;《i》name&;《i》) const = 0 |
virtual QXmlLexicalHandler * | lexicalHandler() const = 0 |
virtual bool | parse(const QXmlInputSource *《i》input<;《i》;) = 0 |
virtual void * | property(const QString &;《i》name&;《i》;bool *《i》ok&;《i》;= nullptr) const = 0 |
virtual void | setContentHandler(QXmlContentHandler *《i》handler<;《i》;) = 0 |
virtual void | setDTDHandler(QXmlDTDHandler *《i》handler<;《i》;) |
virtual void | setDeclHandler(QXmlDeclHandler *《i》handler<;《i》;) |
virtual void | setEntityResolver(QXmlEntityResolver *《i》handler<;《i》;) |
virtual void | setErrorHandler(QXmlErrorHandler *《i》handler<;《i》;) |
virtual void | setFeature(const QString &;《i》name&;《i》;bool 《i》value<;《i》;) = 0 |
virtual void | setLexicalHandler(QXmlLexicalHandler *《i》handler<;《i》;) |
virtual void | setProperty(const QString &;《i》name&;《i》;void *《i》value<;《i》;) |
详细描述
这个抽象类提供了对所有Qt XML读取器的接口。目前,Qt的XML模块中只包含一个读取器的实现:QXmlSimpleReader。在未来的版本中,可能有更多具有不同属性的读取器可供使用(例如验证解析器)。
XML类的设计遵循SAX2 Java接口,并调整名称以符合Qt命名约定。对于曾经使用过SAX2的开发者来说,开始使用Qt XML类应该非常简单。
所有读取器都使用QXmlInputSource类来读取输入文档。由于您通常只对XML文档中的特定内容感兴趣,读取器通过特殊处理程序类(QXmlDTDHandler、QXmlDeclHandler、QXmlContentHandler、QXmlEntityResolver、QXmlErrorHandler和QXmlLexicalHandler)来报告内容,如果您想处理内容,则必须扩展这些类。
由于处理程序类仅描述接口,您必须实现所有函数。我们提供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及其相应的标志是芬兰及其它国家全球范围内的注册商标。所有其他商标均为其所有者所有。