我想創建一個XML文件,使用Java,這是GPS座標(GPX)的集合。每次我從我的android設備收到一個座標(大約每秒1次),我需要將結果追加到現有的XML文件中。我正在查找的輸出如下所示,trkpt元素作爲重複項目。問題是我不能只將新的trkpt添加到文件的末尾,因爲它需要位於trkseg父元素內。如何使用Java將子元素附加到大型XML文件?
到目前爲止,我已經嘗試了兩種不同的API,SIMPLEXML和JDOM。有了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>
你是否總是以同樣的方式追加數據?然後考慮只需逐行閱讀文件,並以'XML無關'的方式追加行;只要結果仍然是有效的XML。 – 2012-02-18 17:53:58
您是否可以將數據追加到普通文件中,然後將整個文件轉換爲XML?或者可以批量轉換它?嘗試不斷更新XML看起來像使生活變得不必要的困難! ;-) – DNA 2012-02-18 17:55:06
我想你的問題涉及到客戶端處理(android)而不是服務器端處理,對嗎? – home 2012-02-18 18:01:33