更新Android SDCARD上的XML节点值



嗨,我有一个更新节点值的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)就足够了。

最新更新