[xml] Zanox xml einlesen

Bububoomt

ohne Vertrauen
ID: 10361
L
28 April 2006
19.666
769
Hallo,

hat jemand Erfahrung mit den XML-Exports von Zanox?

Ich versuche die gerade auszulesen, aber irgendwie habe ich Probleme bei der Struktur die die haben, vor allem mit den Atributen...:(
 
Also,

wie soll ichs erklären. Normal (also bei affili.net und bei Superclix...)

mache ich es so:

PHP:
$xml=simplexml_load_file("Fleurop.xml");
foreach($xml->product[0] as $xx){
...
}

wobei ich per $xx->Title etc. leicht drauf zugreifen kann.

Hier weiß ich aber nicht wie ich darauf zugreife.

wenn ich print_r($xx) mache bekomme ich folgendes ausgegeben:
SimpleXMLElement Object ( [@attributes] => Array ( [id] => 1111 ) )
SimpleXMLElement Object ( [name] => Blabla Name [description] => Array ( [0] => Beschreibungstext [1] => Beschreibungstext ) [manufacturer] => Gerstellername [shippinghandling] => SimpleXMLElement Object ( [@attributes] => Array ( [cost] => 4.00 ) ) )
SimpleXMLElement Object ( [merchant] => Blumen )
SimpleXMLElement Object ( [deeplink] => https://ad.zanox.com/..... [image] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [state] => small ) => https://www....xgebtorte_p.gif ... bekomme schon nicht hin die ID auszulesen :(
 
Huhu,
mir hilft bei sowas (fast) immer ein Blick in die Usercomments auf php.net. ;)

Siehe: https://www.php.net/manual/de/function.simplexml-load-file.php

Und dort steht zum Beispiel:
PHP:
Suppose you have loaded a XML file into $simpleXML_obj.
The structure is like below :

SimpleXMLElement Object
(

    [node1] => SimpleXMLElement Object
        (
            [subnode1] => value1
            [subnode2] => value2
            [subnode3] => value3
        )

    [node2] => SimpleXMLElement Object
        (
            [subnode4] => value4
            [subnode5] => value5
            [subnode6] => value6
        )

)

When searching a specific node in the object, you may use this function :
       
<?php

    function &getXMLnode($object, $param) {
        foreach($object as $key => $value) {
            if(isset($object->$key->$param)) {
                return $object->$key->$param;
            }
            if(is_object($object->$key)&&!empty($object->$key)) {
                $new_obj = $object->$key;
                $ret = getCfgParam($new_obj, $param);   
            }
        }
        if($ret) return (string) $ret;
        return false;
    }
?>

So if you want to get subnode4 value you may use this function like this :

<?php
$result = getXMLnode($simpleXML_obj, 'subnode4');
echo $result;
?>

It display "value4"

Gruß, Zera
 
Klappt leider nicht.

Funktion getCfgParam gibt es nicht habe das einfach durch getXMLnode ersetzt, denke da sollte ne Rekursion rein. Aber selbst dann geht es nicht, der lädt sich nur tot...


 
Ich könnte dir jetzt den nächsten Kommentar von php.net kopieren, oder du schaust selber in die Doku... :roll:

simplexml_load_file() gibt ein Objekt vom Typ SimpleXML zurück. Auf dieser Seite findest du auch ein Beispiel, wie du auf den Inhalt des Objektes zugreifen kannst.

Gruß, Zera
 
Ja die habe ich mir doch bereits angeguckt.

Habe es auch mit den xmldateien von Affili.net und Superclix problemlos hinbekommen.

Aber bei Zanox bekomme ich es ja nicht hin.

wenn du es weißt, sag doch wieich auf

SimpleXMLElement Object ( [@attributes] => Array ( [id] => 2027 ) )

zugreife. ich bekomme es nicht hin...