2011-09-15 14 views
0

私は外部のXMLファイルをつかんで、PHPのsimplexml_load_fileで配列に変換しています。私の質問は、後で処理するためにmysqlデータベースにその情報を保存する最善の方法は何でしょうか?私はそれをシリアル化しようとしたが、あなたはそれを行うことはできないと信じていますか?私がノードを取得すると、もはや有効なエラーや何か類似したものが得られなくなります。どんな提案/助け?PHP - データベースのsimplexml_load_fileの値を格納

答えて

0

XMLファイルがある場合は、XMLを保存して後で処理するのはなぜですか?

+0

が存在しますxmlファイルを文字列に変換してデータベースに格納すると、それを直列化することをお勧めしますか? – John

+0

シリアル化は、オブジェクトまたは他のデータ型を文字列に書き込むことのみです。だから、文字列があれば、それを直列化する必要はありません。 XML全体を解析して正規化された値を別々のテーブルに格納することができますが、後で処理するためにXMLを保存するだけの目的なら、XML文字列をデータベースに格納するだけです。 – GolezTrol

0

serialize()でシリアル化してからunserialize()でシリアル化できます。しかし、多くの場合、カラム/テーブル/ etcの方が良いnormalising your dataであるため、データベースの機能を使用してデータを照会することができます。

+0

私はシリアル化を試していないが、私はそれをアンシリアライズするために行くとき、私はそうのようなエラーの束を取得します。警告:アンシリアライズ():私は取得した場合、ノードは、もはや – John

0

生のXML文字列をTEXTフィールドに格納できます。おそらくmysqlのcompress()関数を使用して領域を節約できます。

私はアレックスの答えをお勧めします、あなたのデータをデータベースの適切なカラム/テーブルに正規化してください。

<itemList> 
    <item> 
     <name>test</name> 
     <value>42</name> 
    </item> 
    ... etc 
</itemList> 

表:ITEMLIST

|id|name|value| 
|1 |test|42 | 
|2 |etc | ... | 
+0

私はAPIからフィードを取得しています。これは、ファイル/文字列全体をテーブルにダンプして別の時間に処理できるようにする主な理由です。 Imの処理準備が整うと、XMLデータのフィールドを正規化することができます。 – John