나는 하루 종일 반복적으로 기존 XML 파일에 노드를 추가해야하는 응용 프로그램을 작성하고 있습니다. 저는 여기에 추가하려고 노드 목록의 샘플입니다안드로이드에서 XML 파일에 반복적으로 쓰는 가장 효율적인 방법은 무엇입니까?
이<gx:Track>
<when>2012-01-21T14:37:18Z</when>
<gx:coord>-0.12345 52.12345 274.700</gx:coord>
<when>2012-01-21T14:38:18Z</when>
<gx:coord>-0.12346 52.12346 274.700</gx:coord>
<when>2012-01-21T14:39:18Z</when>
<gx:coord>-0.12347 52.12347 274.700</gx:coord>
....
이 여러 번까지 일어날 수는 오랜 시간에 두 번째 내가 무엇을 가장 또는 가장 효율적인 방법을 알고 싶습니다 이렇게하는거야.
다음은 지금 당장하고있는 작업입니다. DocumentBuilderFactory를 사용하여 XML 파일을 구문 분석하고 컨테이너 노드를 찾은 다음 하위 노드를 추가 한 다음 TransformerFactory를 사용하여 SD 카드에 다시 씁니다. 그러나 파일이 커질수록 점점 더 많은 시간이 걸리는 것으로 나타났습니다.
나는 더 좋은 방법을 생각하려고 노력했는데 이것이 내가 생각할 수있는 유일한 것입니다 : 파일을로드하고 .seek()를 파일의 특정 위치에 사용하려면 RandomAccessFile을 사용하십시오. 내가 파일의 길이를 기반으로 위치를 계산하고 '내가 무엇을 추가'내가 뭘하고 후 파일의 길이를 뺍니다.
나는이 방법이 효과적 일 것이라고 확신하지만 DocumentBuilderFactory 사용의 용이함과는 조금 다른 느낌을 준다.
더 좋은 방법이 있나요?
xml 파일 대신 sqlite를 사용 하시겠습니까? – Peterdk
데이터베이스가 이런 종류의 문제에 적합한 해결책으로 보일 것입니다. 필요한 경우 XML 파일로 변환 할 수 있습니다. –
불행히도 SD 카드에는 항상 XML 파일이 있어야합니다. 변경 불가능한 요구 사항입니다. – Mendhak