Я правильно читаю xml-файл, но я не могу его написать.Java DocumentBuilder не обновляет xml-файл
Вот файл: файл конфигурации для значений ключа.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<setting key="Password" value="d92e1dedba95d2cf00d4c567e57e3342"/>
<setting key="ExceptionFileLog" value="exception.txt"/>
<setting key="ActionFileLog" value="actions.txt" />
<setting key="ShowInfoMessage" value="false" />
</configuration>
я правильно открыть и прочитать файл с помощью javax.xml.parsers.DocumentBuilder:
private Document _doc = null;
public XmlConfig(String filePath) throws Exception
{
File xml = new File(filePath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
_doc = dBuilder.parse(xml);
_doc.getDocumentElement().normalize();
}
До сих пор так хорошо, но я не в состоянии писать и сохраняются изменения в файле:
public boolean updateValue(String key, String value)
{
NodeList settlist = _doc.getElementsByTagName(SETTNAME);
for(int i = 0; i < settlist.getLength(); i++)
{
Element sett = (Element) settlist.item(i);
if(sett.getNodeType() == Node.ELEMENT_NODE)
{
if(null != sett.getAttribute("key") && sett.getAttribute("key").equals(key))
{
sett.setAttribute("value", value);
return true;
}
}
}
return false;
}
Итак, если я печатаю xml-файл из _doc (объект Document), изменения корректно записываются, но файл xml не обновляется!
Я полагаю, что я открываю, читаю и пишу xml-файл в памяти, и мне нужен способ сохранения изменений на диске. Я понятия не имею, любое предложение будет оценено.
вы не хранящего XML file..all изменений остается в самой памяти .. – ELITE