2

我有非常大的 XML 文件要处理。我想将它们转换为具有颜色、边框、图像、表格和字体的可读 PDF。我的机器中没有很多资源,因此,我需要我的应用程序是非常优化的寻址内存和处理器。

我做了一个不起眼的研究来确定要使用的技术,但我无法确定什么是最适合我要求的编程语言和 API。我相信 DOM 不是一种选择,因为它会消耗大量内存,但是,带有 SAX 解析器的 Java 会满足我的要求吗?

也有人推荐使用 Python 进行 XML 解析。有那么好吗?

我会很感激你的建议。

4

4 回答 4

2

是的,我认为萨克斯会为你工作。Dom 不适合大型 XML 文件,因为它将整个 XML 文件保存在内存中。您可以在此处查看我在博客中写的比较

于 2013-06-10T06:42:52.207 回答
2

SAX 是非常好的解析器,但它已经过时了。

最近 Oracle 推出了新的 Parser 来有效地解析 xml 文件,称为Stax

* http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/SJSXP2.html *

附加链接还将显示所有解析器的比较以及内存利用率及其功能。

谢谢,帕万

于 2013-06-11T13:20:45.467 回答
1

不确定您是否有兴趣使用Perl,但如果您愿意,以下都是不错的选择:LibXMLLibXSLTXML-Twig,这对于太大而无法放入内存的文件很有用(LibXML 也是如此: :读者)。当然,因为SAX就在那里,但它可能很慢。大多数人推荐前两个选项。最后,CPAN是一个很棒的资源,拥有一个非常活跃的社区。

于 2013-06-10T06:42:54.693 回答
1

如果你想要最好的 DOM 而没有它的内存开销,vtd-xml最好的选择,这里就是证明......

http://recipp.ipp.pt/bitstream/10400.22/1847/1/ART_BrunoOliveira_2013.pdf

于 2016-01-13T20:23:55.620 回答