我是Java的新手,我正在编写一个需要XML配置文件的应用程序。我遇到的问题是,似乎没有任何简单的方法可以做到这一点,这看起来有点奇怪。我看起来像SAX和DOM,看起来都很复杂。还有其他好的API吗?在Java中执行此操作的最佳方法是什么? 感谢...
答案 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文件,您可以在代码中用作库。希望有所帮助。
答案 3 :(得分:1)
这就是您所需要的,功能强大且易于使用。
答案 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
类的实例是一行操作。