xml ファイルからデータベースにデータを保存したいのですが、後で使用するために値を入れるために連想配列を作成しようとした php コードを以下に示します。ただし、純粋な値だけでなく、実際の SimpleXMLElement オブジェクトが格納されます。
ここで 2 つの質問があります。
- SimpleXMLElement オブジェクトの代わりに実際の値 (数値または文字列) が格納されるようにコードを変更するにはどうすればよいですか?
- これは、後で SQLLite を使用して保存するための値を保存する良い方法ですか (これを使用します)、またはより適切に機能する他のオプションはありますか?
php:
$theProducers = simplexml_load_file('sources/producers.xml');
$i = 0;
foreach ($theProducers->producer as $producer) {
$producers['id'][$i] = $producer->attributes();
$producers['name'][$i] = $producer->name;
$producers['address'][$i] = $producer->address;
$producers['zipcode'][$i] = $producer->zipcode;
$producers['town'][$i] = $producer->town;
$producers['url'][$i] = $producer->url;
$producers['imgurl'][$i] = $producer->imgurl;
$i += 1;
}
print_r($producers); // outcome below
生産者.xml:
<?xml version="1.0"?>
<producers>
<producer id="8">
<name>Emåmejeriet</name>
<address>Grenvägen 1-3</address>
<zipcode>577 39</zipcode>
<town>Hultsfred</town>
<url>http://www.emamejeriet.se</url>
<imgurl>http://172.16.206.1/~thajo/1DV449/laboration01/producenter/images/ema.png</imgurl>
</producer>
<producer>
...
print_r($producers) からの結果:
Array (
[id] => Array (
[0] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 8 ) )
[1] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 57 ) )
[2] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 45 ) )
[3] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 33 ) )
[4] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 16 ) )
[5] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 41 ) )
[6] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 38 ) )
[7] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 40 ) )
[8] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 56 ) ) )
[name] => Array (
[0] => SimpleXMLElement Object ( [0] => Emåmejeriet )
[1] => SimpleXMLElement Object ( [0] => Ölands Örtagård AB )
[2] => SimpleXMLElement Object ( [0] => Dövestads utegrisar & Gårdsbutik )
... and so on...