2014-12-30 92 views
-1

我有一个XML文件,我需要完全阅读,并且我不知道有什么用(DOM,SAX或JAXB) 我在网上看到很多东西,但我仍然怀疑.. ..加载XML到内存中

由于我需要文件中的所有数据,因此解析文件以创建Java对象(如bean)是一个好主意?因为:

如果我在不使用bean的情况下使用SAX,每次需要数据时都必须完全读取文件。 如果我不使用bean而使用DOM,那么每次需要数据时都必须执行请求。

所以,首先,你有相同的意见?其次,如果我使用bean,你会在DOM,SAX或JAXB之间做什么事情?为什么?

  • 我需要完全读取我的文件。
  • 我不需要修改我的文件。
  • 我的档案很小(20Ko)。

回答

0

如果您一直在使用相同的xml,则可以使用XSLT。

更好的做法是使用jaxb。 JAXB可以帮助你通过bean来解析xml文件,如果你使用的是eclipse,它非常简单。

- 创建一个jaxb项目。 - 将您的xml添加到源代码中。 -right点击xml。 - 生成java类。

+0

嗯好的,但使用豆类是好的还是坏的方法? 因为XSLT请求的性能比从bean获取数据的性能要好吗? – kaoziun

0

如果你需要这样做动态,我建议检查出:

http://www.java-samples.com/showtutorial.php?tutorialid=152

然后用豆类来存储数据,因为这是使用面向语言对象的目的。

+0

真的很有意思,但最后,对于bean,DOM与SAX具有相同的性能,因为所有的数据都在内存中没有? 你有什么不使用JAXB? – kaoziun

0

如果XML代表一个不错的可用的数据模型,请参阅JAXB with annotations。几乎没有开销(没有锅炉板码,没有XSD左右)。

比XPath或其他XML技术的开发工作量少。

+0

好吧我认为这是正确的解决方案,我有一个XSD文件,但它只是精确的类型,长度和元素的发生。 – kaoziun

+0

使用XSD可能会生成java bean类。我发现手动构建更符合我的喜好,但看看JAXB。 –