Meerdere XML feeds met verschillende veldnamen verwerken vanuit 1 bestand
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?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 />';
}
?>
// 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 />';
}
?>
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! :)
Gewijzigd op 01/01/1970 01:00:00 door Rogier
Er zijn nog geen reacties op dit bericht.