gpt4 book ai didi

c++ - Xerces:如何使用 ErrorHandler 检查 XML 文件的有效性

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:44 25 4
gpt4 key购买 nike

我正在尝试确定给定的 XML 文件是否有效(具有正确的语法和结构),并且我正在使用 Xerces。我已经能够成功读取正确的文件,但是当我给它提供语法不正确的文件时,不会抛出任何错误。

我四处寻找,发现我可能必须使用错误处理程序和用户 setErrorHandler 来捕获错误,而不是传统的 try-throw-catch异常处理。

我遇到的问题是,我很困惑如何声明正确的处理程序,将其设置到我的解析器,然后读取出现的错误。

有没有人可以阐明我的情况?

// @input_parameter from function: const string & xmlConfigArg 

xercesc::DOMDocument* doc = NULL;

string xmlConfig(xmlConfigArg);

Handler handler; // I'm not sure what type of handler to use
_parser->setErrorHandler(&handler);
try{
_parser->parse(xmlConfigArg.c_str());
doc = _parser-> getDocument();
}catch(...){
//Nothing is ever caught here
}

最佳答案

您需要从ErrorHandler 派生一个类(< xercesc/sax/ErrorHandler.hpp >)然后覆盖那里的所有虚拟方法。这样做之后,您可以从您创建的类中获取错误代码。解析中不会抛出异常,因此您可以挥动 try/cache block (或保留它以供其他用途)。

关于c++ - Xerces:如何使用 ErrorHandler 检查 XML 文件的有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14694425/

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