我遇到过这个问题:当我调用org.apache.commons.configuration.XMLConfiguration.save(String fileName)时,它会写入未更改两次的属性。 例如。我从这个foo.xml加载所有属性:
<config>
<foo>value</foo>
<bar>value2</bar>
</config>
全部正确加载。然后我通过调用XMLConfiguration.setProperty(“foo”,“new_value”)来改变foo值,然后立即调用XMLConfiguration.save(fileName)并得到以下内容:
<config>
<foo>new_value</foo>
<bar>value2</bar>
<bar>value2</bar>
</config>
如果关闭应用程序,重新启动它并重复这些操作,条形码的数量再次翻倍,但如果改变一个运行所有参数,则所有参数都是正确的。
我尝试过像这样的写作,但没有结果:
config.setProperty("bar", config.getString("bar"));
请帮助......我怀疑,这很神奇......
UPD:问题解决了。配方很简单:不要调用XMLConfiguration.load(),因为它已在XMLConfiguration构造函数中调用。