我有一个Android应用程序,用户可以输入数据并将其保存为设备上的xml文件。我尝试使用不同的库将数据写入xml文件,但我很难使用它们。因此,我创建了自己的方法,该方法在LinkedHashMap中传递,其中键是xml标记。它工作得非常好但是当用户回到应用程序并保存新数据时,我希望将它附加到xml文件中。我的麻烦是我无法删除xml文件中的结束标记以添加新数据。以下是创建xml文件的方法。任何帮助深表感谢。
public static void createxml(LinkedHashMap<String, String> map, String root) {
String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
StringBuilder sb = null;
sb = new StringBuilder(s);
sb.append("<");
sb.append(root);
sb.append(">");
if (fileExists = false) {
sb = new StringBuilder("<Soparc>");
}
for (String key : map.keySet()) {
sb.append("<");
sb.append(key);
sb.append(">");
sb.append(map.get(key));
sb.append("</");
sb.append(key);
sb.append(">");
}
sb.append("</");
sb.append(root);
sb.append(">");
String st = sb.toString();
try {
BufferedWriter output = new BufferedWriter(new FileWriter(dataFile,
true));
output.write(st);
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
只是一个建议:不要忘记逃避特殊的xml
符号。为此,您可以使用org.apache.commons.lang3.StringEscapeUtils.escapeXml(...)
方法。
直接回答您的问题:不幸的是,如果您想要小心地,您必须将之前的xml
结构解析为某些DOM(文档对象模型),更新它使用新用户的数据并再次将其写入xml
。