2017-08-29 93 views
0

我正在使用Apache commons配置2.1.1来读取XML文件。我搜索了他们的文档以写入XML文件,但没有找到合适的答案。如何写入/更改XML配置中的单值。使用Apache Commons配置文件

假设一个XML配置。文件条目:

<program_flow> 
    <program_pause 
     value = "10" 
     ...> 
    </program_pause> 
    <program_quit 
     value = "60" 
     ..."> 
    </program_quit> 
</program_flow> 

这些条目指示程序暂停10秒,然后继续(循环操作)并在60秒后退出。

请注意XML配置。文件有许多其他条目。

与Apache我加载从配置文件中的条目,以我的Java应用程序:

final Configurations APACHE_CONF = new Configurations(); 
XMLConfiguration apacheXMLConf = APACHE_CONF.xml(configPathFile); 
HierarchicalConfiguration xmlSection = apacheXMLConf.configurationAt("program_flow"); 
String pauseValue = xmlSection.getString("program_pause.[@value]"); 
String quitValue = xmlSection.getString("program_quit.[@value]"); 

现在程序知道做什么用的值 - 10秒暂停60秒后退出。棘手的部分是我想允许配置。管理员改变他的想法并改变配置中的任何值。随时可以存档。另外,暂停10秒后,我们不想从配置中读取。再次文件“10”秒,因为它会一直重复我们的程序。 'program_pause'值必须变为“0”。所以'program_quit'的值必须在程序下次启动时不会退出。

的问题是:

使用Apache的共享配置,我们如何以编程方式配置的同款更改任何给定的XML值,它已被读取后,另一个值。文件 - 如那些在我们的例子:

from: 

<program_pause value = "10"> 
<program_quit value = "60"> 

to: 

<program_pause value = "0"> 
<program_quit value = "0"> 

? ? ? 

回答

0

我找到了一些解决这个问题,但是,这些工具包括Apache那些重新调整和重新格式化原始的XML文件。

在我的情况下,我需要XML文件完全一样的原始,只有值改变。我最终编写了一个很好的替换XML文件中的值并保持所有格式的小类。如果任何人有兴趣查看或使用它,请在此处张贴便条,然后发布代码。

相关问题