Java - Apache commons Digester - 写入 xml
Java - Apache commons Digester - write xml
我正在使用 Apache Commons Digester(带注释)将 XML 文件加载到 Java class 中。
一切正常。
现在,我需要更新 XML 文件。我必须更改(在 Java 中)属性 的值,然后写出新的 XML 文件。
我怎么办?据我所知,Digester API 并非为此目的而设计。
编辑: 阅读答案,我明白我没有提供足够的信息。我的 XML 文件是程序 A 的配置文件,所以当我启动程序 A 时我真的需要它的内容。然后,我有另一个 GUI 程序 B 可以修改这个配置文件,它只需要一些输入来自用户并修改 XML 文件中的相关字段。
XML 修改(通常称为 XML 转换)最好在 XSLT standard. Apache Xalan 中处理是实现此标准的 Java 库(之一)
如您所见,Digester 是一个只读工具 - 它提供了从 XML 到 Java classes 的映射,但不能反过来。如果您需要将 XML 读入 Java classes 然后再将其写回 XML,我建议:
- 继续使用 Digester 进行阅读,并使用低级 XML writer
class(如XMLStreamWriter)
写回数据。如果您的数据不是这样,这很合适
复杂,and/or 输出 XML 是与输入不同的结构
XML.
- 用完整的 Java 到 XML 映射库(JAXB、JiBX
等),它将为您读取和写入 XML。这是
如果您的数据更复杂,and/or 输出 XML 是合适的
与输入相同的结构 XML.
对自己正在做的事情了解不够,无法真正推荐其中一种方法。
如果您实际上根本不需要 Java classes 中的数据,而只是想对其进行转换,那么 @sharonbn 所说的 XSLT 也是一个很好的解决方案。
我正在使用 Apache Commons Digester(带注释)将 XML 文件加载到 Java class 中。 一切正常。 现在,我需要更新 XML 文件。我必须更改(在 Java 中)属性 的值,然后写出新的 XML 文件。 我怎么办?据我所知,Digester API 并非为此目的而设计。
编辑: 阅读答案,我明白我没有提供足够的信息。我的 XML 文件是程序 A 的配置文件,所以当我启动程序 A 时我真的需要它的内容。然后,我有另一个 GUI 程序 B 可以修改这个配置文件,它只需要一些输入来自用户并修改 XML 文件中的相关字段。
XML 修改(通常称为 XML 转换)最好在 XSLT standard. Apache Xalan 中处理是实现此标准的 Java 库(之一)
如您所见,Digester 是一个只读工具 - 它提供了从 XML 到 Java classes 的映射,但不能反过来。如果您需要将 XML 读入 Java classes 然后再将其写回 XML,我建议:
- 继续使用 Digester 进行阅读,并使用低级 XML writer class(如XMLStreamWriter) 写回数据。如果您的数据不是这样,这很合适 复杂,and/or 输出 XML 是与输入不同的结构 XML.
- 用完整的 Java 到 XML 映射库(JAXB、JiBX 等),它将为您读取和写入 XML。这是 如果您的数据更复杂,and/or 输出 XML 是合适的 与输入相同的结构 XML.
对自己正在做的事情了解不够,无法真正推荐其中一种方法。
如果您实际上根本不需要 Java classes 中的数据,而只是想对其进行转换,那么 @sharonbn 所说的 XSLT 也是一个很好的解决方案。