首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SimpleXML属性限制的Woodstox -如何设置?

通过SimpleXML属性限制的Woodstox -如何设置?
EN

Stack Overflow用户
提问于 2018-10-19 01:01:54
回答 2查看 670关注 0票数 0

我一直在尝试让SimpleXML读取大量的XML并遇到属性大小限制。

com.ctc.wstx.sr.StreamScanner.constructLimitViolation(StreamScanner.java:2470):超出了javax.xml.stream.XMLStreamException的最大属性大小限制(524288)

我尝试过使用系统属性,但它似乎不起作用。

-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory -Dcom.ctc.wstx.maxAttributeSize=10000000

如何强制Woodstox使用新的限制?

EN

回答 2

Stack Overflow用户

发布于 2018-10-19 02:17:26

我找到了一种可行的方法。我创建了自己的XMLInputFactory,它扩展了修改有问题的限制的woodstox工厂。

代码语言:javascript
复制
public class InputFactory extends WstxInputFactory {
    public InputFactory() {
        super();
        setProperty(WstxInputProperties.P_MAX_ATTRIBUTE_SIZE, Integer.MAX_VALUE);
    }
}

然后只需在main中设置系统属性。

代码语言:javascript
复制
// Force use of our custom XML input factory
    System.getProperties().put("javax.xml.stream.XMLInputFactory", "my.custom.InputFactory");           
票数 1
EN

Stack Overflow用户

发布于 2021-03-17 23:03:24

这个简单的代码也可以工作:

代码语言:javascript
复制
XMLInputFactory factory = XMLInputFactory.newFactory();
factory.setProperty(WstxInputProperties.P_MAX_ATTRIBUTE_SIZE, Integer.MAX_VALUE);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52879100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档