您好我有一个更新节点值的Android应用程序。 sdcard上存在Xml文件,我正在尝试读取和更新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();
}
}
但事情并没有改变。节点值保持不变。 任何有用的想法将不胜感激..
答案 0 :(得分:0)
经过长时间寻找答案后,这个问题的解决方案非常令人尴尬。 我用了 path.setNodeValue(txtPath.getText()的toString()); 更改节点值,但在这种情况下只使用 path.setTextContent(txtPath.getText()的toString()); (将setNodeValue更改为setTextContent)就足够了。