QXmlLexicalHandler 类
QXmlLexicalHandler 类提供了一个接口来报告 XML 数据的词法内容。 更多...
头文件 | #include <QXmlLexicalHandler> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake | QT += core5compat |
继承自 |
注意: 此类中所有函数都是 可重入的。
公共函数
virtual | ~QXmlLexicalHandler() |
virtual bool | comment(const QString &ch) = 0 |
virtual bool | endCDATA() = 0 |
virtual bool | endDTD() = 0 |
virtual bool | endEntity(const QString &name) = 0 |
virtual QString | errorString() const = 0 |
virtual bool | startCDATA() = 0 |
virtual bool | startDTD(const QString &name, const QString &publicId, const QString &systemId) = 0 |
virtual bool | startEntity(const QString &name) = 0 |
详细描述
词法处理器中的事件应用于整个文档,而不仅限于文档元素,并且所有词法处理器事件都出现于内容处理器 startDocument 和 endDocument 事件之间。
您可以使用 QXmlReader::setLexicalHandler() 设置词法处理器。
此接口的设计基于 SAX2 扩展 LexicalHandler。
接口提供了 startDTD(),endDTD(),startEntity(),endEntity(),startCDATA(),endCDATA() 和 comment() 函数。
请参阅以下内容: QXmlDTDHandler,QXmlDeclHandler,QXmlContentHandler,QXmlEntityResolver 和 QXmlErrorHandler。
成员函数文档
[虚拟 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;在这种情况下,将发生解析错误。
通过 QXmlDTDHandler 或 QXmlDeclHandler 报告的所有声明均出现在 startDTD() 和 endDTD() 调用之间。
如果此函数返回 false
,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。
另请参阅endDTD().
[纯虚函数]
bool QXmlLexicalHandler::startEntity(const QString &name)
读取器调用此函数来报告名为 name 的实体的开始。
请注意,如果实体是未知的,读取器将通过 QXmlContentHandler::skippedEntity() 而不是通过此函数来报告。
如果此函数返回 false
,则读者停止解析并报告错误。读者使用函数 errorString() 来获取错误信息。
© 2024 Qt 公司。此处包含的文档贡献由各自的版权持有者拥有。提供的文档根据 GNU 自由文档许可协议第 1.3 版(由自由软件基金会发布)的条款进行许可。Qt 及其相关标志是芬兰以及/或全球其他国家的 Qt 公司的商标。所有其他商标均为其各自持有者的财产。