GPS座標(GPX)のコレクションであるJavaを使用してXMLファイルを作成しようとしています。Androidデバイスから座標を受け取るたびに(約1秒に1回)、結果を既存のXMLファイルに追加する必要があります。私が探している出力は、繰り返し項目としてtrkpt要素を使用して以下に示されています。問題は、trksegの親要素内にある必要があるため、ファイルの最後に新しいtrkptを追加できないことです。
これまで、SIMPLEXMLとJDOMの2つの異なるAPIを試しました。SIMPLEXMLでは、既存のファイルに子要素を追加する方法がわからなかったため、JDOMに切り替えました。JDOMを使用すると、以下に示すようにtrkpt要素を追加できましたが、ファイルが大きくなり始めると、プログラムのユーザーインターフェイスの速度が急速に低下しました。JDOMでは、SAXBuilderを使用してファイルを再度開き、追加していました。これに関する問題は、新しい要素を追加してファイルを書き直す前に、ファイル全体をメモリ内で再現する必要があったことだと思います。したがって、ファイルが大きいほど、デバイスでの操作がより要求されます。新しいデータを書き込む前にファイル全体を調べたりコピーしたりしないソリューションが必要です。JavaまたはJava用APIを使用してこれを実現するためのより効率的な方法はありますか?助けてくれてありがとう!
<?xml version="1.0" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1">
<trk>
<trkseg>
<trkpt lon="9.860624216140083" lat="54.9328621088893">
<ele>228.0</ele>
</trkpt>
<trkpt lon="9.860624216140100" lat="54.9328621088754">
<ele>234.0</ele>
</trkpt>
<trkpt lon="9.860624216140343" lat="54.9328621088678">
<ele>227.0</ele>
</trkpt>
</trkseg>
</trk>
</gpx>