【问题标题】:How to get the Doctype Declaration in Xerces-C when using SAX2?使用 SAX2 时如何在 Xerces-C 中获取 Doctype 声明?
【发布时间】:2010-05-12 21:19:15
【问题描述】:

我正在使用来自 Xerces-C 的 SAX2 来读取 XML 文档。但是,我想检查 Doctype 声明(如果有的话)以确保 XML 文件是我期望的格式。

我已经尝试了DTDHandler 中的 unparsedEntityDecl 和 notationDecl 方法,而EntityResolver 似乎比我要找的要低级。

我这样做的动机是能够确认输入是我期望的格式,以便我可以区分没有输出的文档和完全错误格式的文档。

【问题讨论】:

    标签: c++ xml xerces


    【解决方案1】:

    查看LexicalHandler - startDTD 将为您提供 Doctype。 但是,它并不能验证文档实际上是否遵循该 Doctype。 您需要使用setFeature 在阅读器中启用验证才能做到这一点。 (我只使用过 Java Xerces,但从文档来看,它看起来像方法 基本相同。 )

    【讨论】:

    • 谢谢!一旦我记得/意识到使用 SAX2XMLReader::setLexicalHandler() 方法“注册”我的 Handler 并且只是实现它,这就会起作用。
    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    相关资源
    最近更新 更多