2008-09-15 18 views
6

単一の要素が更新されたときにXMLファイルの内容全体を書き換えるのではなく、ファイルを更新する方が良いでしょうか?大規模なXMLファイルの更新方法

+0

ファイルのサイズはどれくらいですか?それは記憶に収まる? – Peter

答えて

6

私は彼らのよくある質問(http://vtd-xml.sourceforge.net/faq.html)からVTD-XML http://vtd-xml.sourceforge.net/

を使用することをお勧めします:

なぜ私は大規模なXMLファイルのVTD-XMLを使用すべき?

  • パフォーマンス:VTD-XMLのパフォーマンスは、使用する使いやす
  • SAXよりもはるかに良いです:XPathのと組み合わせてランダ​​ムアクセスが
  • ベターを書くことは、アプリケーションが容易になり、以下に要約多くの理由のために

    メンテナンス性:アプリケーションコードが短く分かりやすくなりました。

  • 増分更新:時折の小さな変更は非常に効率的になります。
  • 索引付け:事前解析されたXML形式により、処理のパフォーマンスがさらに向上します。
  • その他の機能:XML文書をカット、ペースト、分割、アセンブルすることは、VTD-XMLでのみ可能です。

VTD-XMLを利用するには、開発者が超大型XMLドキュメントをより小さく、管理しやすいチャックに分割することをお勧めします(< 2GB)。

0

ここではいくつかのオプションがありますが、どれも良いわけではありません。

XMLオブジェクトは別個の部分に分割されないので、正規表現パターンマッチング(sedは良いスタート)でファイルシステムレベルの変更を使用するか、xmlを管理しやすくするために小さな部分に分割する必要があります。

0

可能であれば、XMLをシリアル化し、diff/patch/apply Linuxツール(または使用しているプラ​​ットフォーム内の同等のツール)を使用します。このようにして、構文解析、記述を処理する必要はありません。

4

XMLファイルが大きすぎて更新がパフォーマンスのボトルネックである場合は、XMLからより効率的なディスク形式(または実際のデータベース)に移行することを検討する必要があります。

  1. はそれを
  2. をしないでくださいそれをしないでください(専門家のみ)、:それは、最適化のルールを覚えて、問題がある可能性がありますように

    場合は、しかし、あなただけを感じますまだ。

-4

プロセス大規模なXMLファイルのXQueryとギガバイトのサイズのXMLファイルで動作します http://www.xquery.com

XQueryは、ネイティブXMLクエリ言語として設計されたクエリ言語です。ほとんどのタイプのデータはXMLとして表すことができるため、XQueryを使用して他のタイプのデータを照会することもできます。たとえば、XQueryを使用して、リレーショナル・データベースのXMLビューを使用してリレーショナル・データを照会することができます。多くのインターネットアプリケーションでは、Webメッセージ、リレーショナルデータ、およびさまざまなXMLソースにあるデータなど、複数のソースからの情報を統合する必要があるため、これは重要です。 XQueryは、この種のデータ統合のために特別に設計されました。

たとえば、お客様の会社が各クライアントの株式保有に関するレポートを作成する必要のある金融機関であるとします。クライアントはXMLで表されるSOAP(Simple Object Access Protocol)メッセージを使用してレポートを要求します。ほとんどのビジネスでは、株式保有データは、Oracle、Microsoft SQL Server、またはDB2などの複数のリレーショナルデータベースに格納されます。 XQueryは、SOAPメッセージとリレーショナルデータベースの両方にクエリを実行し、XMLでレポートを作成します。

XQueryはXMLの構造に基づいており、その構造を利用して、リレーショナルデータを含むXMLとして表現できるあらゆるタイプのデータに対してクエリを実行できるようにします。また、XQuery API for Java(XQJ)を使用すると、J2EEプラットフォームをサポートする任意の環境でクエリを実行できます。

関連する問題