【问题标题】:Java - Apache commons Digester - write xmlJava - Apache commons Digester - 编写 xml
【发布时间】:2015-07-17 17:21:22
【问题描述】:

我正在使用 Apache Commons Digester(带注释)将 XML 文件加载到 Java 类中。 一切正常。 现在,我需要更新 XML 文件。我必须更改(在 Java 中)属性的值,然后写出新的 XML 文件。 我该怎么办?据我所知,Digester API 不是为此目的而设计的。

编辑:阅读答案,我知道我没有提供足够的信息。我的 XML 文件是程序 A 的配置文件,所以当我启动程序 A 时我真的需要它的内容。然后,我有另一个 GUI 程序 B 能够修改这个配置文件,它只需要用户的一些输入和修改 XML 文件中的相关字段。

【问题讨论】:

    标签: java xml apache-commons-digester


    【解决方案1】:

    正如您所发现的,Digester 是一个只读工具——它提供了从 XML 到 Java 类的映射,但不能反过来。如果您需要将 XML 读入 Java 类,然后再次将其写回 XML,我建议:

    • 继续使用 Digester 进行阅读,并使用低级 XML 编写器 类(如XMLStreamWriter) 将数据写回。如果您的数据不是这样,这是合适的 复杂,和/或输出 XML 与输入的结构不同 XML。
    • 用完整的 Java 到 XML 映射库(JAXB、JiBX)替换 Digester 等),它将为您读取和写入 XML。这是 如果您的数据更复杂,和/或输出 XML 是 与输入 XML 的结构相同。

    对您正在做的事情知之甚少,无法真正推荐其中一种方法而不是另一种。

    如果您实际上根本不需要 Java 类中的数据而只是想对其进行转换,那么 @sharonbn 所说的 XSLT 也是一个很好的解决方案。

    【讨论】:

      【解决方案2】:

      XML 修改(通常称为 XML 转换)最好在 XSLT standard 中处理。 Apache Xalan 是(之一)实现此标准的 Java 库

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-31
        • 2011-07-04
        • 1970-01-01
        相关资源
        最近更新 更多