0

我正在使用命令行应用程序 xmlsec 来加密和解密文件。我得到了一个节点大小为 40 MB 的 XML 文件。我已经发现我需要设置

LIBXML_PARSEHUGE

解析大于 10 MB 的节点

有谁知道如何启用此功能?我在 xmlsec 的源代码中搜索 Parser init,但找不到集成选项的方法 我必须在源代码中设置它并重新编译吗?如果是这样,我是否必须重新编译 libxml 或 xmlsec?

4

2 回答 2

0

好的,所以我找到了解决方案并将其发布在这里以防万一有人需要这个

src/Parser.c 
xmlDocPtr xmlSecParseFile(const char *filename){}

包含这个

/* enable parsing of XML documents with large text nodes */
xmlCtxtUseOptions (ctxt, XML_PARSE_HUGE);

最初,第二行被注释掉了。您必须取消注释并重新编译该工具

于 2015-08-20T10:05:59.650 回答
0

您还可以通过simplexml_load_string函数本身激活参数:

simplexml_load_string($xmlString,'SimpleXMLElement', LIBXML_PARSEHUGE);
于 2019-06-10T18:34:11.313 回答