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 ().