有没有办法处理libxml sax解析中的错误?

时间:2013-04-24 12:18:42

标签: c++ libxml2

我必须在我的c ++代码中使用libxml,出于某种原因,我的程序正在使用sax方法解析xml文件。有没有办法在解析时处理错误或异常?提前感谢。

1 个答案:

答案 0 :(得分:1)

您可以编写自己的错误处理程序,如下所示:

static void my_error(void *user_data, const char *msg, ...) {
    va_list args;

    va_start(args, msg);
    g_logv("XML", G_LOG_LEVEL_CRITICAL, msg, args);
    va_end(args);
}

static void my_fatalError(void *user_data, const char *msg, ...) {
    va_list args;

    va_start(args, msg);
    g_logv("XML", G_LOG_LEVEL_ERROR, msg, args);
    va_end(args);
}

(来自here的例子)

使用xmlSetGenericErrorFuncxmlSetStructuredErrorFunc注册它们。

没有上下文的注册示例:

xmlSetGenericErrorFunc(NULL, my_fatalError);