次のような大きな (~30Mb) XML ファイルがあります。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<LIC Version="2.0" Title="Products">
<Item>
<Field Name="Filename">/root/_DOWNLOAD/Bird.txt</Field>
<Field Name="Read_By">Lisa Hannigan</Field>
<Field Name="Posit">Passenger</Field>
</Item>
<Item>
<Field Name="Filename">D:\03\Strypers.pdf</Field>
<Field Name="Read_By">Stryper</Field>
<Field Name="Intensity">2</Field>
<Field Name="IMG">78</Field>
<Field Name="Rotate">0</Field>
</Item>
<Item>
<Field Name="Filename">D:\Afriu.txt</Field>
<Field Name="Read_By">Africano</Field>
<Field Name="Posit">Canto Africano vol.1</Field>
<Field Name="File_Resource">mp3</Field>
</Item>
<Item>
<Field Name="Filename">D:\_VARIOUS\Knots.pdf</Field>
<Field Name="Date">40624</Field>
</Item>
...
</LIC>
PHPスクリプトを使用して、このxmlをmysqlデータベースにインポートしたいと考えています。SIMPLEXML と xpath を使用しました。
$url = 'FILE.xml';
$xml = simplexml_load_file($url);
$result = $xml->xpath("//Field[@Name]");
foreach { ... }
私が必要なものは何?mysql sqlに使用する配列を作成するための正しい「foreach」は何ですか? すべての行 (「アイテム」で識別) は同じではない (「フィールド名」が同じではない) ことに注意してください。大きなファイルに simplexml を使用するのは正しいですか? ご協力ありがとう御座います!
アップデート
これは「foreach」を使用する例です、私は試しました:
$result = $xml->xpath("//Field[@Name]");
foreach($result as $key => $value) {
echo $value['Name']."=".$value.",";
}
今、mysqlに挿入する文字列を作成する方法を知りたい