有一种简单的方法来读取Java中的XML文件吗?

时间:2010-03-27 11:06:03

标签: java xml parsing

我是Java的新手,我正在编写一个需要XML配置文件的应用程序。我遇到的问题是,似乎没有任何简单的方法可以做到这一点,这看起来有点奇怪。我看起来像SAX和DOM,看起来都很复杂。还有其他好的API吗?在Java中执行此操作的最佳方法是什么? 感谢...

7 个答案:

答案 0 :(得分:1)

您可以查看that list的xml序列化程序和反序列化程序。

我建议使用jdk类XmlEncoder + XmlDecoder,xstream或simple。

答案 1 :(得分:1)

我建议使用Commons Configuration库:http://commons.apache.org/configuration/index.html看看HOWTO,看看从XML文件中获取一些信息是多么容易。

我所知道的所有其他库都涉及直接在DOM上操作或者为SAX解析注册处理程序(这两者都涉及高代码开销)。 JAXB也是一种替代方案,但不需要比前两种更少的开销代码。

最高

答案 2 :(得分:1)

正是出于这个原因,我写了一个非常简单的API。它使用下面的DOM解析器,但是公开了一个非常简单易用的API,它允许您非常轻松地获取XML数据。它只是一个Java文件,您可以在代码中用作库。希望有所帮助。

http://argonrain.wordpress.com/2009/10/27/000/

答案 3 :(得分:1)

这就是您所需要的,功能强大且易于使用。

Preferences API

答案 4 :(得分:1)

“我对Java很新......似乎没有任何简单的方法可以做到这一点,这看起来有点奇怪。”这是一个老帖子。既然你已经使用Java 4年了,当你很难做简单的事情时,你还会感到惊讶吗? :)

我从JDK开始,并在它上面构建了我自己的XmlHelper类。它小而简单。每当我发现自己一遍又一遍地编写相同的代码时,它就会被复制到该类中。这让我的生活变得更轻松。 http://marketmovers.blogspot.com/2014/02/the-easy-way-to-read-xml-in-java.html

答案 5 :(得分:0)

SAX和DOM是用Java解析XML文件的“标准”方法。

也有XML的替代品。

也许您只需要一个属性文件?

你考虑过JSON吗?

答案 6 :(得分:0)

自行解析文件(特别是出于配置目的)的一个不错的替代方法是使用Apache Commons Digester

您只需指定XML文件的哪些部分将触发您需要的setter /方法,Digester将完成剩下的工作。您可以构建任意复杂的配置,并且“解析”代码仍然是微不足道的。

e.g。

  digester.addObjectCreate( "addresses/address", Address.class );
  digester.addBeanPropertySetter( "addresses/address/addressLine1", "addressLine1" );

创建一个Address对象并设置地址的第一行。有关详细信息,请参阅this tutorial

或者XStream提供(可能)Java中最简单的XML到对象转换。从输入流创建(例如)Configuration类的实例是一行操作。