Centos 6.4 上的 C++,libxml2.x86_64 2.7.6-12.el6_4.1:
我正在尝试修复一个旧的 C++ 程序,该程序偶尔会在大型 xml 文件上出现 XML 解析器错误,似乎需要设置 XML_PARSE_HUGE 选项。但我没看到有什么地方可以设置!失败的代码使用的是 xmlParseMemory 函数,该函数只有 2 个参数 - 要解析的 char 数组及其大小。
是否有某种方法可以全局设置 XML_PARSE_HUGE 选项?
最佳答案
您必须切换到 xmlReadMemory
它有一个 options
参数。只需转换调用,例如
xmlParseMemory(buffer, size);
至
xmlReadMemory(buffer, size, NULL, NULL, XML_PARSE_HUGE);
(我认为 xmlParseMemory
早于解析器选项,保留它只是为了向后兼容。另请参阅 this question 。)
关于xmlParseMemory 的 libxml2 XML_PARSE_HUGE 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24531634/