XML を使用してデータを保存したいと考えています。しかし、そこに挿入された最後のデータを取得したいときに完全なファイルを読みたくないし、そこに新しいデータを追加するときに完全なファイルを書き換えたくありません。xmlファイルを最初からではなく最後から解析するためのJavaの標準的な方法はありますか。そのため、たとえば SAX または StaX パーサーは、最初に最後の終了ルート タグに遭遇し、最後のタグに遭遇します。または、これを行いたい場合は、通常のテキストファイルを読み書きするように、すべてを読み書きする必要がありますか?
3 に答える
私が望むものの解決策の例で、これに関する良いトピックを見つけました。このリンク: http://www.oreillynet.com/xml/blog/2007/03/parsing_xml_backwards.html XML は、私が望むものを実現するのに適したファイル形式ではないようです。XML を先頭ではなく末尾から解析できる標準パーサーはありません。
おそらく最良の解決策は、すべての xml データを、多くの xml ファイルのコンテンツの構成を含む 1 つのファイルに格納することです。各行には、XML の個別の内容が格納されています。ファイル自体は整形式の XML ではありませんが、各行には標準の xml パーサー (StaX) を使用して解析する整形式の xml が含まれています。
このようにして、ファイルの最後から行だけを読み取り、新しいデータをファイルの最後に追加することができます。データ全体またはその一部のみが必要な場合は、すべての行または一部を読み取ります。ファイルが大きくなる可能性があるため、おそらくファイルの最後からページネーションを実装することもできます。
各行に XML が含まれているのはなぜですか? それを解析するために API を使用するのは簡単だと思います。また、行内の値を記号で区切るだけでなく、データを xml に格納する方が人間が判読できると思います。