Kunnen we iets meer code te zien krijgen? Ik heb geen idee waar $product vandaan komt, of wat het is.
Link gekopieerd
Alle foto's zullen de foreach() passeren. Alleen jouw probleem is dat je $object['photo'] steeds overschrijft.
Link gekopieerd
Maar ook als ik het bijvoorbeeld echo krijg ik ze nog niet, alleen de eerste foto..
<?
foreach ($product->photos as $foto2) {
$object['foto'] = $foto2->photo;
echo $object['foto'] ;
}
?>
Link gekopieerd
En gooi eens een var_dump op $product, zoals ik het nu in kan schatten is het:
<?php
foreach ($product->photos->photo as $foto) {
echo $foto, '<br>';
}
?>
Link gekopieerd
ki ma
20-12-2013 20:16
gewijzigd op 20-12-2013 20:17
Uitlezen gaat als volgt:
<?
// feed laden
$xml = simplexml_load_file($url);
// feed uitlezen
foreach ($xml->member->items->item as $product) {
$object['naam'] = $product->name;
foreach ($product->photos as $foto2) {
$object['foto'] = $foto2->photo;
echo $object['foto'] . '<br>';
}
}
?>
Dit gaat prima, alleen de fotos worden niet allemaal meegenomen..
Link gekopieerd
Zie mijn vorige reactie.
<?php
$test='<?xml version="1.0" ?>
<products>
<product>
<name>product1</name>
<photos>
<photo>photo1-1</photo>
<photo>photo1-2</photo>
<photo>photo1-3</photo>
</photos>
</product>
<product>
<name>product2</name>
<photos>
<photo>photo2-1</photo>
<photo>photo2-2</photo>
<photo>photo2-3</photo>
</photos>
</product>
</products>';
$xml = simplexml_load_string($test);
echo '<pre>';
var_dump($xml);
echo '</pre>';
?>
Resultaat:
object(SimpleXMLElement)#1 (1) {
["product"]=>
array(2) {
[0]=>
object(SimpleXMLElement)#2 (2) {
["name"]=>
string(8) "product1"
["photos"]=>
object(SimpleXMLElement)#4 (1) {
["photo"]=>
array(3) {
[0]=>
string(8) "photo1-1"
[1]=>
string(8) "photo1-2"
[2]=>
string(8) "photo1-3"
}
}
}
[1]=>
object(SimpleXMLElement)#3 (2) {
["name"]=>
string(8) "product2"
["photos"]=>
object(SimpleXMLElement)#4 (1) {
["photo"]=>
array(3) {
[0]=>
string(8) "photo2-1"
[1]=>
string(8) "photo2-2"
[2]=>
string(8) "photo2-3"
}
}
}
}
}
Link gekopieerd
Op regel 6 vul je steeds hetzelfde element van je array met een waarde. Uiteindelijk sur dan alleen de laatste waarde in je array.
2 regels verder doe je dat ook met je fotos.
$product['fotos'][] = .......
Link gekopieerd
Beste Ger,
Bedankt voor je uitleg! Nu heb ik hem te pakken. Het code woord bij deze is wel de var_dump(); nu snap ik hoe het is opgebouwd en dus hoe ik de variabelen kan benaderen.
$foto2->photo[0]; // eerste foto
$foto2->photo[1]; // tweede foto
Nu kom ik er verder wel uit :)
Link gekopieerd