首页 / 知识

关于java:验证巨大的XML文件

2023-04-14 00:15:00

关于java:验证巨大的XML文件

Validating a HUGE XML file

我正在尝试找到一种方法来针对XSD验证大型XML文件。 我看到了问题......验证XML的最佳方法......但答案都指向使用Xerces库进行验证。 唯一的问题是,当我使用该库来验证180 MB文件时,我得到一个OutOfMemoryException。

是否有其他工具,库,策略来验证大于普通的XML文件?

编辑:SAX解决方案适用于java验证,但libxml工具的另外两个建议对于java之外的验证非常有用。


不使用DOMParser,而是使用SAXParser。 这将从输入流或读取器读取,因此您可以将XML保留在磁盘上,而不是将其全部加载到内存中。

1
2
3
4
5
6
7
8
9
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);

SAXParser parser = factory.newSAXParser();

XMLReader reader = parser.getXMLReader();
reader.setErrorHandler(new SimpleErrorHandler());
reader.parse(new InputSource(new FileReader ("document.xml")));

使用libxml,它执行验证并具有流模式。


我个人喜欢使用具有命令行界面的XMLStarlet,并在流上工作。 它是一组基于Libxml2构建的工具。


如前所述,SAX和libXML将有所帮助。 您还可以尝试使用-Xmx选项增加JVM的最大堆大小。 例如。 将最大堆大小设置为512MB:java -Xmx512m com.foo.MyClass


验证文件方法工具

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢