java - 使用 wikixmlj 解析 xml 文件时出现错误 : xml. sax.SAXParseException

标签 java xml

我正在使用 wikixmlj 解析维基百科 xml 转储并收到以下错误。

org.xml.sax.SAXParseException; lineNumber: 64243259; columnNumber: 371; JAXP00010004: The accumulated size of entities is "50,000,001" that exceeded the "50,000,000" limit set by "FEATURE_SECURE_PROCESSING".
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
        at edu.jhu.nlp.wikipedia.WikiXMLSAXParser.parse(WikiXMLSAXParser.java:58)
        at edu.virginia.cs.wikirarchy.ParseWikiPage.run(ParseWikiPage.java:36)
        at java.lang.Thread.run(Thread.java:745)

所以这部分错误主要是:

The accumulated size of entities is "50,000,001" that exceeded the "50,000,000" limit set by "FEATURE_SECURE_PROCESSING".

我找不到这个问题的解决方案。

最佳答案

在运行 java 命令时再添加三个参数解决了我的问题。

-DentityExpansionLimit=2147480000 -DtotalEntitySizeLimit=2147480000 -Djdk.xml.totalEntitySizeLimit=2147480000

所以,现在我正在使用以下命令运行我的代码。

nohup java -DentityExpansionLimit=2147480000 -DtotalEntitySizeLimit=2147480000 -Djdk.xml.totalEntitySizeLimit=2147480000 -Xmx16g -cp "lib/*.jar" -jar dist/WikiRarchy.jar 32 &

出现问题是因为 - 默认情况下,安全处理将实体数量限制为 50,000,000,并且此扩展限制控制实体扩展。

关于java - 使用 wikixmlj 解析 xml 文件时出现错误 : xml. sax.SAXParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42991043/

相关文章:

java - 随机不排除我的号码

java - 如何使用正则表达式在最后一次出现破折号后提取文本?

iphone - NSXMLParser 在无效 XML 上崩溃

sql - 使用RegEx在Notepad++中一键执行多个查找/替换命令

python - 即使在 odoo 中创建记录后, ListView 仍为空白

java - 按属性对自定义对象的 ArrayList 进行排序

java - 如何创建火烈鸟丝带菜单?

libraries - Java:如何打开库?

xml - XML 中的命名空间

java - Android不幸的应用程序已停止?