如何在android中的xml中附加标签?以及如何保存那个xml文件?

时间:2011-07-07 06:39:52

标签: java android xml

我想在xml文件中附加一个带有这些值的新标签,并通过我的应用程序保存该xml文件。我已经编写了一个方法,用于将新标记作为子文件附加到sdcard中可用的xml文件android emulator.the以下方法附加新标记如下

   public void appendTag(){

    try{

        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
        Document doc = docBuilder.parse (new File("/sdcard/sample.xml"));

     Node node = doc.getElementsByTagName("earth").item(0);

     //append a new node to earth
     Element newelmnt = doc.createElement("new");
     newelmnt.appendChild(doc.createTextNode("this is a text"));
     node.appendChild(newelmnt);


    }
    catch (Exception e) {
        e.printStackTrace();
    }

}

执行此方法后,我无法在xml文件中找到新标记。

可以请求任何一个关于如何在xml文件中附加新标记作为子标记的帮助以及如何保存修改?

如果我使用TransformerFactory我会收到错误     ERROR / AndroidRuntime(13479):java.lang.VerifyError:com.sample.xmlapp.DOMClass 我使用如下

     TransformerFactory factory = TransformerFactory.newInstance();
     Transformer transformer = factory.newTransformer();

     DOMSource source = new DOMSource(doc);
     StreamResult result = new StreamResult(new File("/sdcard/sample.xml"));
     transformer.transform(source, result);

1 个答案:

答案 0 :(得分:2)

您的内存文档将被更改,但您需要再次将其写入文件。

尝试添加此项以便再次将文档写入文件:

TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();

DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("/sdcard/sample.xml"));
transformer.transform(source, result);