我想在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);
答案 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);