在java中解析大量xml文件
我将从MQ获取大量xml文件(每几分钟数万个)。xml文件不是很大。我必须提取信息并保存到数据库中。不幸的是,我不能使用第三方库(ApacheCommons除外)。此场景中通常使用哪些策略/技术?java或apache中是否有任何xml解析器可以很好地处理此类情况在java中解析大量xml文件,java,xml,parsing,Java,Xml,Parsing,我将从MQ获取大量xml文件(每几分钟数万个)。xml文件不是很大。我必须提取信息并保存到数据库中。不幸的是,我不能使用第三方库(ApacheCommons除外)。此场景中通常使用哪些策略/技术?java或apache中是否有任何xml解析器可以很好地处理此类情况 我还可以补充一点,基于对这个主题的评论和讨论,我正在使用JDK1.4,我想提出一个整合的解决方案 使用SAX解析XML文件-如@markspace所述,您应该 内置SAX,性能良好 如果可能,使用批量插入-因为您计划插入一个大的 数据
我还可以补充一点,基于对这个主题的评论和讨论,我正在使用JDK1.4,我想提出一个整合的解决方案
如果XML文件的模式不同,则考虑结点 将类似的XML放入组中,以便可以批量插入这些组 稍后
try catch finally
<> p>虽然没有完成,但希望这个答案为您提供了一组关键的检查点,在编写可扩展性能代码时,您需要考虑的是,STAX是内置的并且工作正常。应该是原子操作吗?我的意思是,如果某个xml中有错误,该怎么办?哇,太快了:)谢谢,我来看看。但是,如何处理这些数据库插入?@Sach:如果有错误,我只需记录它并继续下一个xmlUse-a-database
INSERT
。然而,当您说“MQ”时,您可能处于一个已经定义了数据库源或API的环境(JEE)中。询问需求。谢谢普拉哈拉德。另一个问题是我们如何决定这些批量插入的频率?@lemonTea这个问题没有明确的答案。您必须根据各种因素(如内存消耗、数据必须持久化到数据库的时间限制等)来决定批量插入的频率。确定正确参数的唯一方法是在模拟生产的环境中观察一系列值的应用程序性能