2014-08-27 162 views
0

我有一個android應用程序,用戶可以輸入數據並將其保存爲設備上的xml文件。我嘗試使用不同的庫將數據寫入xml文件,但我努力使用它們。因此,我做了我自己的方法,它傳遞一個LinkedHashMap,其中的鍵是xml標記。它工作得很好,但當用戶回到應用程序並保存新數據時,我希望它被附加到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
  1. 只是一個建議:不要忘了逃跑的特殊xml符號。爲此,您可以使用類似org.apache.commons.lang3.StringEscapeUtils.escapeXml(...)的方法。

  2. 回答你直接問:可惜的是,如果你想做到這一點仔細,你必須分析你以前的xml結構到一些DOM(文檔對象模型),與新用戶的數據更新,並再次寫入xml