QXmlReader 类

QXmlReader 类为 XML 读取器 (即:剖析器) 提供接口。 更多...

头: #include <QXmlReader>
CMake: find_package(Qt6 COMPONENTS Core5Compat REQUIRED)
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 命名约定。对于任何操作过 SAX2 的人来说,入门采用 Qt XML 类应该是很容易的。

所有读取器使用类 QXmlInputSource 以读取输入文档。由于通常对 XML 文档内容尤其感兴趣,因此读取器报告内容是透过特殊处理程序类 ( QXmlDTDHandler , QXmlDeclHandler , QXmlContentHandler , QXmlEntityResolver , QXmlErrorHandler and QXmlLexicalHandler ) 且必须子类化,若想要处理内容。

由于处理程序类仅描述接口,因此必须实现所有功能。我们提供 QXmlDefaultHandler 类使这变得更容易:它为所有功能实现默认行为 (什么都不做),因此可以子类化它并仅实现感兴趣功能。

可以设置读取器的特征和特性采用 setFeature () 和 setProperty () 分别。可以将读取器设为使用自己的子类采用 setEntityResolver (), setDTDHandler (), setContentHandler (), setErrorHandler (), setLexicalHandler () 和 setDeclHandler ()。剖析本身以调用 parse() 开始。

注意:此类现被弃用,请使用 QXmlStreamReader 或 QDomDocument 为读取 XML 文件。

另请参阅 QXmlSimpleReader .

成员函数文档编制

[虚拟] 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 被设为 true 若读取器拥有的特征称为 name ;否则 * ok 被设为 false。

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

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

返回 true 若读取器拥有的特征称为 name ;否则返回 false .

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

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

返回 true 若读取器拥有特性 name ;否则返回 false .

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

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

返回词法处理程序或 nullptr 若未设置。

另请参阅 setLexicalHandler ().

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

读取 XML 文档从 input 并剖析它。返回 true 若剖析成功;否则返回 false .

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

若读取器拥有特性 name ,此函数返回特性值;否则返回值未定义。

ok 不是 nullptr :若读取器拥有 name property * 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 to value 。若读取器没有特性,则什么都不发生。

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