Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-ApacheCommons摘要器-编写xml_Java_Xml_Apache Commons Digester - Fatal编程技术网

Java-ApacheCommons摘要器-编写xml

Java-ApacheCommons摘要器-编写xml,java,xml,apache-commons-digester,Java,Xml,Apache Commons Digester,我使用ApacheCommonsDigester(带注释)将XML文件加载到Java类中。 一切正常。 现在,我需要更新XML文件。我必须(在Java中)更改属性的值,然后写出新的XML文件。 我怎么办?就我所见,Digester API并不是为此目的而设计的 编辑:阅读答案,我明白我没有提供足够的信息。我的XML文件是程序a的一个配置文件,所以我在启动程序a时确实需要它的内容。然后,我有另一个GUI程序B,它可以修改这个配置文件,它只需要用户输入一些信息,并修改XML文件上的相关字段。XML修

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


编辑:阅读答案,我明白我没有提供足够的信息。我的XML文件是程序a的一个配置文件,所以我在启动程序a时确实需要它的内容。然后,我有另一个GUI程序B,它可以修改这个配置文件,它只需要用户输入一些信息,并修改XML文件上的相关字段。

XML修改(通常称为XML转换)最好的处理方式是。Digester是实现该标准的Java库之一,正如您所发现的,Digester是一个只读工具,它提供了从XML到Java类的映射,但不是相反。如果需要将XML读入Java类,然后再将其写回XML,我建议:

  • 继续使用Digester进行阅读,并使用低级XML编写器 类别(例如) 将数据写回。如果您的数据不是这样,这是合适的 复杂,和/或输出XML与输入的结构不同 XML
  • 用完整的Java到XML映射库(JAXB、JiBX)替换Digester 等等),它将为您读写XML。这是 如果您的数据更复杂,和/或输出XML是 与输入XML的结构相同
你对自己正在做的事情了解不够,因此无法真正推荐其中一种方法

如果您实际上根本不需要Java类中的数据,只是尝试转换它,那么@sharonbn所说的XSLT也是一个很好的解决方案