2011-07-20 5 views
0

私は多くのショップから私に与えられたXMLフィードを扱う価格比較スクリプトを作成しています。 これらXMLSはXMLフィードをデータベースに保存するか、XMLパーサーを使ってXMLフィードを処理する必要がありますか?

<product id="449135"> 
<name>MadBiker 600</name> 
<link>MadBiker-600.html</link> 
<price_with_vat>107.01</price_with_vat> 
<category id="148807">For men</category> 
<image width="280" height="280">p1.1.jpg</image> 
<description>desc goes here</description> 
    </product> 

が、私は2つのオプションがあり、それを処理するには、以下のものと同じ構造を持つことになります。 XMLフラットファイルを処理するか、それらのデータ/値をデータベースに保存します。私は、SAX/XMLReaderのようなメモリ不足のパーサーがいくつかあると読んでいます。

さらに興味深いのは、RDBMSを使用する代わりに、パーサーを1つのファイルに使用することです。

あなたの意見は?

ありがとうございました

+0

xmlデータベースの使用を検討しましたか? apache xindice _or_ xmlを_transport_形式としてのみ使用し、データを別の形式で保存しますか? http://xml.apache.org/xindice/ – VolkerK

+0

を参照してください。フラットファイルアプリケーションではなく、パフォーマンスを向上させるためにXMLを作成してデータベースに保存することを意味しますか? – EnexoOnoma

+0

多かれ少なかれ、はい。しかし、私はXML文書を "作成"せず、受け取った文書をxmlデータベースに格納します。または、サンプルの断片が私にとって非常に階層的ではないので、コンバータを作成し、好きなリレーショナルデータベースシステムにデータを格納します。 mysql。 – VolkerK

答えて

1

ほとんどの場合、データを入れたい用途に依存します。

データの並べ替えやフィルタリング(たとえば、「価格で並べ替える」、「カテゴリで絞り込む」など)が必要な場合を想定しています。また、「関連性」の計算や検索機能が必要な場合もあります。

また、比較データを常に追加、削除、変更することを前提としています。

広義に言えば、これらのことは、XMLファイルを解析することよりも、特にスケールの方が簡単です。

一方、SQLでは、製品の種類ごとに異なるデータ属性を表現することが難しくなります(自転車にはフレームサイズが必要な場合があります)。これが問題の一部である場合、XMLはデータ・ストレージを容易にします。スキーマ/ dtdを定義し、スキーマに準拠した文書を作成します。

+0

+1私の通常の答え: "それは依存します。 :-) –

関連する問題