次のxmlドキュメントがあります。
<shop id="123" name="xxx">
<product id="123456">
<name>Book</name>
<price>9.99</price
</product>
<product id="789012">
<name>Perfume</name>
<price>12.99</price
</product>
<product id="345678">
<name>T-Shirt</name>
<price>9.99</price
</product>
</shop>
<shop id="456" name="yyy">
<product id="123456">
<name>Book</name>
<price>9.99</price
</product>
</shop>
各製品の情報を収集するために、次のループがあります。
$data_feed = 'www.mydomain.com/xml/compression/gzip/';
$xml = simplexml_load_file("compress.zlib://$data_feed");
foreach ($xml->xpath('//product') as $row) {
$id = $row["id"]; // product id eg. "123456"
$name = $row->name;
$price = $row->price;
// update database etc.
}
ただし、各商品の親ショップ (「id」と「name」) の情報も収集したいと考えています。
製品ではなくショップから開始するように xpath を簡単に変更できますが、インデントされた各製品をループするために foreach 内に追加のループを構築する最も効率的な方法がわかりません
わかる?