Meerdere XML feeds met verschillende veldnamen verwerken vanuit 1 bestand

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rogier

Rogier

23/06/2009 08:38:00
Quote Anchor link
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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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 />';
    }

?>


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.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.