Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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中xml文件的修改_Java_Xml_User Interface - Fatal编程技术网

java中xml文件的修改

java中xml文件的修改,java,xml,user-interface,Java,Xml,User Interface,我有一个对话框,用户可以通过gui控件插入各种数据, 这些信息保存为xml文件(用java实现)。 存储在xml文件中的信息是配置信息 用于应用程序。 我可以手动修改xml配置文件,但我也希望通过UI提供此功能。 因此,当对话框打开(用于创建配置)时,相应的定义良好的对象将由用户输入的各种值填充。 一旦用户按下“保存”,对象中的信息将存储为xml。 现在我想通过UI提供编辑文件的选项。因此,向用户显示相同的对话框,但这次显示的配置信息已由加载的文件填充。相应的对象也会被填充。 我不确定此时修改文

我有一个对话框,用户可以通过gui控件插入各种数据, 这些信息保存为xml文件(用java实现)。
存储在xml文件中的信息是配置信息 用于应用程序。
我可以手动修改xml配置文件,但我也希望通过UI提供此功能。
因此,当对话框打开(用于创建配置)时,相应的定义良好的对象将由用户输入的各种值填充。
一旦用户按下“保存”,对象中的信息将存储为xml。
现在我想通过UI提供编辑文件的选项。因此,向用户显示相同的对话框,但这次显示的配置信息已由加载的文件填充。相应的对象也会被填充。
我不确定此时修改文件的最佳方式是什么。
我是否应该使用两个对象,一个存储文件的所有信息,一个存储对话框中修改的值,并开始比较对象的更改以便修改文件?还是应该删除该文件并创建一个新文件?
哪种方法是最好的,我将如何处理每种方法


谢谢

简单一点。只需使用更新的对象覆盖整个文件。这样,您就不需要为每个案例编写任何特殊代码。您只需要一种方法将对象整理到文件中,另一种方法将其取消整理。

考虑数据流。用户将使用GUI并进行更改。当他们进行修改时,GUI上的数据与XML不一致。如果用户选择保存数据,那么一个简单的封送操作(如果使用JAXB则很简单)将确保XML得到更新。您不需要比较每个字段,这没有意义——当然,在将内容提交到文件之前,您已经验证了内容。如果用户选择取消,则不会进行编组

不需要进行备份,也不需要比较XML中已有的内容


但是,如果用户需要能够撤消保存(例如恢复到以前的配置),那么您将需要一个备份结构(或在内存中维护GUI模型堆栈)。不过,我不推荐这种方法,因为您只是在添加不必要的复杂性。用户通常对“保存”或“取消”按钮以及“不还原”感到满意。

是否应先创建备份文件?