在SAX和STAX之间选择哪一个来读取大型xml文件

时间:2014-12-31 13:59:14

标签: java xml-parsing saxparser stax

我有一个要求,我可以拥有100 MB或更大的xml文件,其中包含我需要将每个公司从该xml文件添加到表中的公司列表。

我正在考虑使用SAX解析器,但我也在考虑使用stax解析器。有人可以帮我知道我应该使用哪一个。

THX

2 个答案:

答案 0 :(得分:1)

StAX有一个更容易使用的API,所以我认为这是一个更好的选择。 SAX有一个低级推送API,使用起来不是很好(例如使用char[])。 StAX有更好的使用pull API。

另一个潜在的优势:使用StAX你还没有阅读整篇文档,如果你有你需要的东西,你可能会停止。

找到here的Java XML解析API有一个很好的 - 虽然很旧 - 比较。

答案 1 :(得分:0)

使用StAX可以将内存中保存的数据量最小化到最近解析的记录。将该记录插入表后,您不再需要将其保留在内存中。

如果使用SAX,在将记录插入表之前,您可能(可能)必须将整个xml内容解析到内存中。虽然可以随意插入(当遇到记录的关闭元素时),SAX比StAX更复杂。