2012-07-16 34 views
1

我知道如何讀取或解析.xml文件。我需要知道如何編輯這個.xml文件並將其保存在相同的位置(手機內存/ SD卡)?如何在Java ME中編輯XML文件?

+0

? – Lucifer 2012-07-16 08:04:44

+0

解析好後,我猜。如果你能回答這兩個問題,那會很好。 :) – Hybridzz 2012-07-16 08:09:50

回答

1

我可以給它一個線索/邏輯。

假設你有你的XML文件作爲

<XML> 
    <NAME>ABC</NAME> 
    <JOB>DEV</JOB> 
    ... 
</XML> 

現在,你需要閱讀如後讀取這個XML和編輯像這樣會是resultan xml文件。

<XML> 
    <NAME>XYZ</NAME> 
    <JOB>DEVELOPER</JOB> 
    ... 
</XML> 

所以爲了這個目的,你需要打開在同一時間像下面兩個File連接,

FileConnection fc1 = (FileConnection) Connector.open("<File URL>"); 
FileConnection fc2 = (FileConnection) Connector.open("<File URL>"); 

爲FC2您的文件名會被改變。

現在開始讀取第一個文件中的字符並將它們寫入第二個文件(簡單的C語言邏輯)。您可以隨時隨地進行更改,例如當您解析並獲取ABC時,將其替換爲XYZ相同的其他字符串。

+1

OMG !!複雜。我會嘗試。 – Hybridzz 2012-07-16 08:31:31

+1

如果你認爲它在邏輯上,你可以很容易地實現它,以你的朋友的筆記本複製筆記本爲例。首先閱讀零件/行,然後將其寫入筆記本中,非常簡單。 – Lucifer 2012-07-16 08:34:18

+1

http://stackoverflow.com/q/10041347/1521686請問這個問題。 – Hybridzz 2012-07-16 12:17:35

1

@Lucifer拿出你的想法,我已經開發了一些東西,可以編輯現有的.XML。 Thankz

OutputStream os = fc.openDataOutputStream(); 
         os.write(ReadChangedXml(result).getBytes()); 
         os.close(); 

你的對象應包含舊值

public synchronized String ReadNChangeXml(<your object>) { 
    StringBuffer buf = new StringBuffer(); 
    StringBuffer key = new StringBuffer(); 
    byte c; 

    try { 
     in = fc.openInputStream(); 
     } catch (Exception e) 
     { 
     do_alert("Open failed for Change Xml.", 1000); 
     } 

    try { 
     boolean scan = false; 
     while (((c = (byte) in.read()) != -1)) { 

      if (c == '>') { 
       scan = true; 
       buf.append((char) c); 
       continue; 
      } 

      if (scan == true && c != '<') { 
       key.append((char) c); 
      } 

      if (scan == true && c == '<') 
       { 
       scan = false; 
        if (key.toString().equalsIgnoreCase(<your object variable>)) 
         buf.append(<new value>); 
        else 
        buf.append(key.toString()); 
       } 
       buf.append((char) c); 
       key = new StringBuffer(); 
       continue; 
      } 
      if (scan == false) { 
       buf.append((char) c); 
      } 
     } 

    } catch (Exception E) { 
     do_alert("Read failed for Change Xml.", 1000); 
    } 

    return buf.toString(); 
} 
你想解析經過或不解析編輯
+0

我的代碼有一些額外的東西,只是粘貼的東西來獲得一個基本的想法。 :) – Hybridzz 2012-07-17 11:30:10