gpt4 book ai didi

c++ - SAX2 (Xerces-C) : How to get the line number of parsed tags?

转载 作者:行者123 更新时间:2023-11-28 01:03:36 27 4
gpt4 key购买 nike

我使用 Xerces-C 的 SAX2 api 在 C++ 中解析 XML 文件。所以我确实实现了 DefaultHandler 接口(interface)及其功能

void startElement(
const XMLCh* const uri,
const XMLCh* const localname,
const XMLCh* const qname,
const xercesc::Attributes& attrs
);

void endElement(
const XMLCh* const uri,
const XMLCh* const localname,
const XMLCh* const qname
);

当 xml 文件有语法错误时,抛出的 SAXParseException 会给我错误发生的行号,我可以将错误行打印给用户。

在我的应用程序中,语法可能格式正确,但包含的数据没有多大意义。在这种情况下,我还想将错误行打印给用户。但是我没有找到获取当前行号的方法,因为 xml 在语法上是正确的并且没有抛出 SAXParseException。有没有办法获取标签的行号?

最佳答案

覆盖派生自 xercesc::DefaultHandler 的类中的 setDocumentLocator() 方法以获取 xercesc::Locator 对象。然后您可以调用它的 getLineNumber() 方法。

关于c++ - SAX2 (Xerces-C) : How to get the line number of parsed tags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7540428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com