我一直在尝试让 SimpleXML 读取巨大的 XML,但遇到了属性大小限制。
javax.xml.stream.XMLStreamException:超出最大属性大小限制 (524288) 在 com.ctc.wstx.sr.StreamScanner.constructLimitViolation(StreamScanner.java:2470)
我尝试过使用系统属性,但似乎没有找到它。
-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory -Dcom.ctc.wstx.maxAttributeSize=10000000
如何强制 Woodstox 使用新的限制?
最佳答案
我找到了一种有效的方法。我创建了自己的 XMLInputFactory,它扩展了 woodstox 工厂,从而改变了有问题的限制。
public class InputFactory extends WstxInputFactory {
public InputFactory() {
super();
setProperty(WstxInputProperties.P_MAX_ATTRIBUTE_SIZE, Integer.MAX_VALUE);
}
}
然后只需在main中设置系统属性即可。
// Force use of our custom XML input factory
System.getProperties().put("javax.xml.stream.XMLInputFactory", "my.custom.InputFactory");
关于java - Woodstox 通过 SimpleXML 属性限制 - 如何设置它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52879100/