Nieuw lid |
|
Ik verwerk voor een website aardig wat XML feeds. Vooralsnog heb ik per feed een php bestand. Ik vind dit nu wat omslachtig en wil het allemaal in 1 bestand stoppen. Ik probeer dit nu op een manier te doen die mij wat omslachtig lijkt. Willen jullie er eens naar kijken en eventueel aan willen geven wat er beter kan?
<?php
// Array met de winkels
$winkels = array('Wehkamp', 'Score');
foreach ($winkels as $winkel)
{
switch($winkel)
{
case 'Wehkamp':
$xml = simplexml_load_file('http://www.website.nl/feed1.xml');
break;
case 'Score':
$xml = simplexml_load_file('http://www.website.nl/feed2.xml');
break;
}
foreach ($xml->product as $product)
{
switch($winkel)
{
case 'Wehkamp':
$naam = $product->name;
break;
case 'Score':
$merk = $product->xpath('./additional/field[@name="merk"]');
$type = $product->xpath('./additional/field[@name="type"]');
$naam = $merk[0]. ' ' .$type[0];
break;
}
echo $naam. '<br />';
}
echo '<hr />';
}
?>
<?php // Array met de winkels $winkels = array('Wehkamp', 'Score'); foreach ($winkels as $winkel) { switch($winkel) { case 'Wehkamp': $xml = simplexml_load_file('http://www.website.nl/feed1.xml'); break; case 'Score': $xml = simplexml_load_file('http://www.website.nl/feed2.xml'); break; } foreach ($xml->product as $product) { switch($winkel) { case 'Wehkamp': $naam = $product->name; break; case 'Score': $merk = $product->xpath('./additional/field[@name="merk"]'); $type = $product->xpath('./additional/field[@name="type"]'); $naam = $merk[0]. ' ' .$type[0]; break; } } } ?>
Zoals jullie dus kunnen zien zijn de XML feeds helaas niet hetzelfde opgebouwd. Ik had eigenlijk het liefst gewoon een functie gebruikt die ik dan bijvoorbeeld als volgt kan aanroepen:
verwerk_xml('http://www.website.nl/file.xml', $product->name, $product->price)';
Dit is echter hier volgens mij niet werkend te krijgen omdat ik voor die case 'score' meerdere stappen moet uitvoeren om tot de productnaam te komen. Ook moet volgens mij de XML eerst opgeroepen worden met een foreach voordat ik de beschikking heb over bijvoorbeeld $product->name. Het lijkt mij dus dat de XML url dus niet samen met de variabel $product->name in 1 functie gestopt kan worden.
Ik hoop dat mijn probleem enigszins duidelijk is voor jullie en dat jullie mij willen helpen!
|