2016-05-15 8 views
0

私はアプリの外部ストレージにxmlファイルを作成しています。私はそれにデータを書き込むことができますが、私は新しいデータを追加し、上書きしないことを望みます。ここにコードがありますので、XMLファイルに書き込みますが、追加はしません。本当にありがとうございます。ありがとうございます。 私はこのようなものを作成しようとしています。Androidでxmlを作成する

<data> 
<name>Name1</name> 
<books>Book1</books> 
<movies>Movie1</movies> 
</data> 
<data> 
<name>Name2</name> 
<books>Book2</books> 
<movies>Movie2</movies> 
</data> 


String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp" + "/MyAppData.xml"; 
        fileos = new FileOutputStream(file_path); 

          xmlSerializer = Xml.newSerializer(); 
          StringWriter writer = new StringWriter(); 
          xmlSerializer.setOutput(writer); 
          xmlSerializer.startDocument("UTF-8", true); 
          xmlSerializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); 

          xmlSerializer.startTag(null, "data"); 
          //tag date 
          xmlSerializer.startTag(null, "name"); 
          xmlSerializer.text("Amber"); 
          xmlSerializer.endTag(null, "name"); 

          xmlSerializer.startTag(null, "books"); 
          xmlSerializer.text(enter_books); 
          xmlSerializer.endTag(null, "books"); 

          xmlSerializer.startTag(null, "movies"); 
          xmlSerializer.text(enter_movies); 
          xmlSerializer.endTag(null, "movies"); 


          xmlSerializer.endTag(null, "data"); 
          xmlSerializer.flush(); 

          String dataWrite = writer.toString(); 
          fileos.write(dataWrite.getBytes()); 
          fileos.close(); 
+0

XMLは、 "追加" という概念をサポートしていません。既存のXMLを読み込んで、追加の要素でそれを書き戻す必要があります。または、より簡単にappendを処理するライブラリがあるかどうかを確認してください。 – CommonsWare

+0

既存のデータを読み、それに書き込むのを手伝ってもらえますか? – artist

+0

DOM構造( 'javax.xml.parsers.DocumentBuilder')にデータをロードし、新しい要素をルートの子として追加してから書き出します。これを行う方法については、多くのドキュメントがあります。 –

答えて

関連する問題