我要处理非常大的XML文件。我想将它们转换为可读的PDF,包括颜色,边框,图像,表格和字体。我的机器中没有很多资源,因此,我需要我的应用程序非常优化寻址内存和处理器。
我做了一个简单的研究,让我对使用的技术有所了解,但我无法根据我的要求决定什么是最好的编程语言和API。我相信DOM不是一个选项,因为它占用了大量内存,但是,带SAX解析器的Java是否符合我的要求?
有些人还推荐使用Python进行XML解析。这样好吗?
我很感激你的善意。
答案 0 :(得分:2)
是的,我认为Sax会为你效劳。 Dom不适合大型XML文件,因为它将整个XML文件保存在内存中。您可以在我的博客here
中看到我写的比较答案 1 :(得分:1)
不确定您是否对使用Perl
感兴趣,但如果您愿意接受,则以下都是不错的选择:LibXML,LibXSLT和{{3} },这适用于文件太大而无法放入内存中(XML-Twig也是如此)。当然,LibXML::Reader就在那里,但它可能很慢。大多数人推荐前两个选项。最后,SAX是一个非常活跃的社区的惊人来源。
答案 2 :(得分:1)
SAX是非常好的解析器,但它已经过时了。
最近Oracle推出了新的Parser来有效地解析xml文件,名为 Stax
* http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/SJSXP2.html *
附加链接还将显示所有解析器的比较以及内存利用率及其功能。
谢谢, 帕
答案 3 :(得分:0)
如果你想要最好的DOM而没有内存开销,vtd-xml就是best下注,这是证据......
http://recipp.ipp.pt/bitstream/10400.22/1847/1/ART_BrunoOliveira_2013.pdf