如何在JavaME中编辑XML文件?

如何在JavaME中编辑XML文件?,xml,file,java-me,Xml,File,Java Me,我知道如何读取或解析.xml文件。我需要知道如何编辑这个.xml文件并将其保存在同一位置(手机存储器/sd卡)?我可以给出它的线索/逻辑 假设您的xml文件是 <XML> <NAME>ABC</NAME> <JOB>DEV</JOB> ... </XML> 基础知识 发展 ... 现在,您需要读取此xml并在读取后进行编辑,例如,这将是resultan xml文件 <XML>

我知道如何读取或解析.xml文件。我需要知道如何编辑这个.xml文件并将其保存在同一位置(手机存储器/sd卡)?

我可以给出它的线索/逻辑

假设您的xml文件是

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

基础知识
发展
...
现在,您需要读取此xml并在读取后进行编辑,例如,这将是resultan xml文件

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

XYZ
开发商
...
为此,您需要同时打开两个文件连接,如下所示

FileConnection fc1 = (FileConnection) Connector.open("<File URL>");
FileConnection fc2 = (FileConnection) Connector.open("<File URL>");
FileConnection fc1=(FileConnection)连接器。打开(“”);
FileConnection fc2=(FileConnection)连接器。打开(“”);
对于fc2,您的文件名将被更改


现在开始从第一个文件读取字符,并将其写入第二个文件(简单的C语言逻辑)。你可以在任何地方进行更改,比如在解析和获取ABC时,用XYZ和其他字符串替换它。

@Lucifer根据你的想法,我开发了一些可以编辑现有.XML的东西谢谢

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();
}
公共同步字符串ReadNChangeXml(){
StringBuffer buf=新的StringBuffer();
StringBuffer键=新的StringBuffer();
字节c;
试一试{
in=fc.openInputStream();
}捕获(例外e)
{
do_警报(“打开更改Xml失败。”,1000);
}
试一试{
布尔扫描=假;
而(((c=(字节)in.read())!=-1)){
如果(c=='>'){
扫描=真;
追加((char)c);
继续;
}

如果(scan==true&&c!='您想在解析后编辑还是不进行解析?我想解析后编辑是好的。如果您能同时回答这两个问题,那就好了。:)如果你认为它符合逻辑,那么你可以很容易地实现它,举一个从你朋友的笔记本上复制笔记本的例子。首先你读了一部分/行,然后写在你的笔记本上,很简单。我的代码有一些额外的东西,只需粘贴这些东西就可以得到一个基本的想法。:)