QXmlLexicalHandler 类

QXmlLexicalHandler 类提供了一个接口来报告 XML 数据的词法内容。 更多...

头文件 #include <QXmlLexicalHandler>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmakeQT += core5compat
继承自

QXmlDefaultHandler

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

公共函数

virtual~QXmlLexicalHandler()
virtual boolcomment(const QString &ch) = 0
virtual boolendCDATA() = 0
virtual boolendDTD() = 0
virtual boolendEntity(const QString &name) = 0
virtual QStringerrorString() const = 0
virtual boolstartCDATA() = 0
virtual boolstartDTD(const QString &name, const QString &publicId, const QString &systemId) = 0
virtual boolstartEntity(const QString &name) = 0

详细描述

词法处理器中的事件应用于整个文档,而不仅限于文档元素,并且所有词法处理器事件都出现于内容处理器 startDocument 和 endDocument 事件之间。

您可以使用 QXmlReader::setLexicalHandler() 设置词法处理器。

此接口的设计基于 SAX2 扩展 LexicalHandler。

接口提供了 startDTD(),endDTD(),startEntity(),endEntity(),startCDATA(),endCDATA() 和 comment() 函数。

请参阅以下内容: QXmlDTDHandlerQXmlDeclHandlerQXmlContentHandlerQXmlEntityResolverQXmlErrorHandler

成员函数文档

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

销毁词法处理器。

[纯虚] bool QXmlLexicalHandler::comment(const QString &ch)

读者调用此函数来报告文档中任何位置的XML注释。它将在 ch 中报告注释的文本。

如果此函数返回 false,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。

[纯虚] bool QXmlLexicalHandler::endCDATA()

读者调用此函数来报告CDATA段的结束。

如果此函数返回 false,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。

另请参阅startCDATA() 和 QXmlContentHandler::characters().

[纯虚] bool QXmlLexicalHandler::endDTD()

如果存在,读者调用此函数来报告DTD声明的结束。

如果此函数返回 false,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。

另请参阅startDTD().

[纯虚] QString QXmlLexicalHandler::endEntity(const QString &name)

读者调用此函数来报告名为 name 的实体结束。

对于每个startEntity() 调用,都有一个对应的 endEntity() 调用。对startEntity() 和 endEntity() 的调用是正确嵌套的。

如果此函数返回 false,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。

另请参阅startEntity(),QXmlContentHandler::skippedEntity(),和QXmlSimpleReader::setFeature().

[纯虚] QString QXmlLexicalHandler::errorString() const

如果任何处理函数返回 false,则读者调用此函数来获取错误字符串。

[纯虚] bool QXmlLexicalHandler::startCDATA()

读者调用此函数来报告CDATA段的开始。CDATA区段的内容通过 QXmlContentHandler::characters() 函数报告。此函数仅用于报告边界。

如果此函数返回 false,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。

另请参阅endCDATA().

[纯虚] bool QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)

如果存在,读者调用此函数来报告DTD声明的开始。它报告文档类型的名称在 name 中,公开标识符在 publicId 中,系统标识符在 systemId 中。

如果公开标识符不存在,则 publicId 设置为空字符串。如果系统标识符不存在,则 systemId 设置为空字符串。注意,具有公开标识符但没有系统标识符不是有效的XML;在这种情况下,将发生解析错误。

通过 QXmlDTDHandlerQXmlDeclHandler 报告的所有声明均出现在 startDTD() 和 endDTD() 调用之间。

如果此函数返回 false,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。

另请参阅endDTD().

[纯虚函数] bool QXmlLexicalHandler::startEntity(const QString &name)

读取器调用此函数来报告名为 name 的实体的开始。

请注意,如果实体是未知的,读取器将通过 QXmlContentHandler::skippedEntity() 而不是通过此函数来报告。

如果此函数返回 false,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。

参见:endEntity() 和 QXmlSimpleReader::setFeature.

© 2024 Qt 公司。此处包含的文档贡献由各自的版权持有者拥有。提供的文档根据 GNU 自由文档许可协议第 1.3 版(由自由软件基金会发布)的条款进行许可。Qt 及其相关标志是芬兰以及/或全球其他国家的 Qt 公司的商标。所有其他商标均为其各自持有者的财产。