【问题标题】:Xerces: How to check the validity of an XML file using ErrorHandlerXerces:如何使用 ErrorHandler 检查 XML 文件的有效性
【发布时间】:2013-01-19 14:32:55
【问题描述】:

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

【问题讨论】:

    标签: c++ error-handling xerces


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-09-09
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 2013-07-22
      • 1970-01-01
      • 2012-09-03
      相关资源
      最近更新 更多