我正在尝试确定给定的 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
}