将新数据添加到XML文件

时间:2014-08-27 14:05:55

标签: java xml append writer

我有一个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();
    }

}

1 个答案:

答案 0 :(得分:0)

  1. 只是一个建议:不要忘记逃避特殊的xml符号。为此,您可以使用org.apache.commons.lang3.StringEscapeUtils.escapeXml(...)方法。

  2. 直接回答您的问题:不幸的是,如果您想要小心地,您必须将之前的xml结构解析为某些DOM(文档对象模型),更新它使用新用户的数据并再次将其写入xml