嗨,我有一个更新节点值的Android应用程序。XML文件存在于SDCARD上,我正在尝试阅读和更新XML文件。
我正在使用以下代码。
private void SaveToXml() {
String destFile = Environment.getExternalStorageDirectory().toString()+"/file.xml";
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = (Document) docBuilder.parse(destFile);
Node path = doc.getElementsByTagName("path").item(0);
path.setNodeValue(txtPath.getText().toString());
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer trans = transFactory.newTransformer();
trans.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(destFile));
trans.transform(source, result);
} catch (Exception e) {
e.printStackTrace();
}
}
但是什么都没有改变。节点值仍保持静止。任何有用的想法都将不胜感激。
长时间寻找答案后,解决了该问题的解决方案。我用了 path.setNodeValue(txtpath.getText()。toString());要更改节点值,但是在这种情况下,请仅使用 path.setTextContent(txtpath.getText()。toString());(将setNodeValue更改为setTextContent)就足够了。