login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Meerdere XML feeds met verschillende veldnamen verwerken vanuit 1 bestand

Offline Ijspegel - 23/06/2009 10:02
Avatar van IjspegelNieuw 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?

  1. <?php
  2. // Array met de winkels
  3. $winkels = array('Wehkamp', 'Score');
  4.  
  5. foreach ($winkels as $winkel)
  6. {
  7. switch($winkel)
  8. {
  9. case 'Wehkamp':
  10. $xml = simplexml_load_file('http://www.website.nl/feed1.xml');
  11. break;
  12.  
  13. case 'Score':
  14. $xml = simplexml_load_file('http://www.website.nl/feed2.xml');
  15. break;
  16. }
  17.  
  18. foreach ($xml->product as $product)
  19. {
  20. switch($winkel)
  21. {
  22. case 'Wehkamp':
  23. $naam = $product->name;
  24. break;
  25.  
  26. case 'Score':
  27. $merk = $product->xpath('./additional/field[@name="merk"]');
  28. $type = $product->xpath('./additional/field[@name="type"]');
  29. $naam = $merk[0]. ' ' .$type[0];
  30. break;
  31. }
  32.  
  33. echo $naam. '<br />';
  34. }
  35. echo '<hr />';
  36. }
  37. ?>


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! 

1 antwoord

Gesponsorde links
Offline Koen - 27/06/2009 23:43
Avatar van Koen PHP expert Aangezien bijna elk xml bestand anders is opgebouwd lijkt het mij bijna onmogelijk om dit op een efficiente manier in een functie te proppen, hardcoded zoals je het nu doet lijkt me de beste oplossing.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s