PHP の simplexml_load_file 関数を使用した後、一部のデータを保存する際に問題が発生しました。SimpleXML オブジェクトを調べたいのですが、データが要件を満たしている場合は、それを配列に入れたいと考えています。問題は、フィールドの値を取得できないことです。それが意味をなす場合、常にオブジェクト全体を通過するようです。
ここに私のコード
echo $allProducts->product[1]->sku."<br/>";
echo $allProducts->product[1]->title."<br/>";
echo $allProducts->product[1]->price."<br/>";
$products["041132"]['sku'] = $allProducts->product[1]->sku;
$products["041132"]['title'] = $allProducts->product[1]->title;
$products["041132"]['price'] = $allProducts->product[1]->price;
print_r($products);
そして私の出力:
041132
Audrey Dining Chair
195.00
Array ( [041132] => Array (
[sku] => SimpleXMLElement Object ( [0] => 041132 )
[title] => SimpleXMLElement Object ( [0] => Audrey Dining Chair )
[price] => SimpleXMLElement Object ( [0] => 195.00 ) )
)
保存したいのは実際の値だけです。それ、どうやったら出来るの?
参考までに、私の XML のサンプルを次に示します。
<products>
<product>
<sku>934896</sku>
<title>Savannah Barstool</title>
<price>475.00</price>
</product>
<product>
<sku>041132</sku>
<title>Audrey Dining Chair</title>
<price>195.00</price>
</product>
</products>