xmlParseMemory 的 libxml2 XML_PARSE_HUGE 选项

标签 libxml2

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/

相关文章:

ios - iPhone libxml2 undefined symbol (带有 gdata、kissxml、touchxml 等)

python - 需要帮助在 os x 10.7 上安装 lxml

在 DOMDocument 中加载的模板中的 PHP 代码块

makefile - 如何撤消./configure命令

c - libxml2 和 XPath 在 ANSI C 中遍历 child 和 sibling

ruby - 使用 Nokogiri 验证 DTD 字符串

php - 如何正确解码 XML 文件中的特殊字符?

c - GHashTable 对两个相同输入的响应完全不同

c++ - Windows环境下从源码构建libxml2

xml - Perl LibXML 打印额外的 "text"标签