【问题标题】:Adding new data to XML File向 XML 文件添加新数据
【发布时间】:2014-08-27 14:05:54
【问题描述】:

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

}

【问题讨论】:

    标签: java xml append writer


    【解决方案1】:
    1. 只是一个建议:不要忘记转义特殊的xml 符号。为此,您可以使用类似org.apache.commons.lang3.StringEscapeUtils.escapeXml(...) 的方法。

    2. 直接回答你的问题:不幸的是,如果你想这样做小心,你必须将你以前的xml结构解析成一些DOM(文档对象模型),用新的更新它用户的数据并再次写入xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多