序言
本文所提及的VTD-XML并非本文作者原创,作者只是对它进行介绍。
问题
通常当我们提起XML的使用时,最头痛的部分便是XML的verbosity与XML的解析速度,当需要处理大XML文件时这个问题便变得格外严重。我在这里提及的,便是如何优化XML处理速度的话题。
当我们选择处理XML文件的时候,我们大致上有两种选择:
DOM,这是W3C的标准模型,它将XML的结构信息以树形的方式构建,提供了遍历这颗树的接口与方法。
SAX,一种低级的parser,逐元素的向前只读处理,不含有结构信息。
以上两种选择都各有利弊,但是都不是特别好的解决方案,它们的优缺点如下:
DOM
优点:易用性强,因为所有的XML结构信息都存在于内存中,并且遍历简单,支持XPath。
缺点:Parsing速度太慢,内存占用过高(原文件的5x~10x),对于大文件来说几乎不可能使用。
SAX
优点:Parsing速度快,内存占用不与XML的大小相联系(可以做到XML涨内存不涨)。
缺点:易用性差,因为没有结...[ 查看全文 ]