【问题标题】:Is there an easy way to read an XML file in Java? [closed]有没有一种简单的方法可以在 Java 中读取 XML 文件? [关闭]
【发布时间】:2010-03-27 11:06:03
【问题描述】:

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

【问题讨论】:

标签: java xml parsing


【解决方案1】:

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

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

【讨论】:

  • 感谢大家的回复。 Commons Configuration 看起来相当不错,而且看起来非常强大,但是,最后我决定在我的应用程序中使用这个解决方案。 Commons Configuration 唯一的负面影响是,它对于一些简单的配置来说是相当重量级的。该解决方案非常轻量级,可以满足我的一切需求。非常感谢您的链接!
【解决方案2】:

我会推荐 Commons 配置库:http://commons.apache.org/configuration/index.html 查看 HOWTO,了解从 XML 文件中获取一些信息是多么容易。

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

最大

【讨论】:

  • 是的,当然:你应该考虑使用 sth。如果您真的不想利用 XML 功能,则可以使用 XML 以外的其他方法。属性文件是最简单的替代方案。
【解决方案3】:

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

我会建议jdk类XmlEncoder+XmlDecoder,xstream或者simple。

【讨论】:

    【解决方案4】:

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

    Preferences API

    【讨论】:

      【解决方案5】:

      “我对 Java 还很陌生……似乎没有任何简单的方法可以做到这一点,这似乎有点奇怪。”这是一个旧帖子。现在您已经使用 Java 4 年了,您是否还在为做简单的事情很难而感到惊讶? :)

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

      【讨论】:

        【解决方案6】:

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

        XML 也有替代品。

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

        你考虑过 JSON 吗?

        【讨论】:

          【解决方案7】:

          自己解析文件的一个很好的替代方法是使用Apache Commons Digester

          您只需指定 XML 文件的哪些部分将触发您需要的设置器/方法,其余的由 Digester 完成。您可以构建任意复杂的配置,并且“解析”代码仍然很简单。

          例如

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

          创建一个地址对象并设置地址的第一行。请参阅this tutorial 了解更多信息。

          另外,XStream 提供(可能)Java 中可用的最简单的 XML 到对象的转换。从输入流创建(比如说)Configuration 类的实例是单行操作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-29
            • 1970-01-01
            • 1970-01-01
            • 2013-08-24
            • 2011-03-02
            • 1970-01-01
            • 1970-01-01
            • 2016-07-19
            相关资源
            最近更新 更多