Antworten auf deine Fragen:
Neues Thema erstellen

PHP: SimpleXML rendert nicht tief genug (mobile.de-API)

Nighteyess

Noch nicht viel geschrieben

Hallo zusammen,

ich versuche mit folgenden Codes die API von mobile.de anzusteuern.
Die einzelnen Fahrzeugdaten sollen demnach auf meiner Webseite ausgegeben werden.

PHP:
Code:
function detail_from_ad(
    $adID) {
        $handle = curl_init();

        $auth_token = base64_encode('***' . ':' . '***');
        curl_setopt_array(
            $handle,
            array(
                CURLOPT_URL => 'http://services.mobile.de/1.0.0/ad/'.$adID,
                CURLOPT_POST => false,
                CURLINFO_CONTENT_TYPE => 'application/xml',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_HTTPHEADER => array(
                       'Authorization: Basic '. $auth_token,
                       'accept: application/xml',
                       'Accept-Language: de, en'
                )
            )
        );
        $response = curl_exec($handle);
        $xml = simplexml_load_string($response);
        print_r($xml->children('ad', true));
        return $xml->children('ad', true);
}

$car = detail_from_ad(****);
$vehicle = $car->vehicle;
$features = $vehicle->features;
$features->feature[0]->attributes()['key'];
foreach ($features->feature as $feature) {
    echo $feature->attributes()['key'] . '<br />';
    $feature->children(0);
    echo $feature->children('resource')->{'local-description'};
}

print_r von $features:
Code:
[features] => SimpleXMLElement Object
    (
        [feature] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                    )
                [1] => SimpleXMLElement Object
                    (
                    )
                [2] => SimpleXMLElement Object
                    (
                    )
                [3] => SimpleXMLElement Object
                    (
                    )
                [4] => SimpleXMLElement Object
                    (
                    )
                [5] => SimpleXMLElement Object
                    (
                    )

Frage: Wie bringe ich PHP dazu, tiefer zu rendern und die SimpleXMLElemente in dieser Tiefe auszugeben?
 
Zuletzt bearbeitet:

Hallo,

du musst die Kindknoten rekursiv durchgehen. Jeder Kindknoten muss also selbst solange seine Kinder ausgeben, bis er keine mehr hat.

Dazu legst du am besten eine funktion print_children an. Um mehr Kontrolle zu haben könntest du noch einen Parameter Ebene mitgeben, um die aktuelle Tiefe zu bestimmen. Evtl. ist das aber gar nicht nötig, wenn du in der Funktion den KnotenTyp abfragst.

Pseudocode
Code:
function print_children($parent_node, $ebene)
{
   for ($child in $parent_node->children())
   {
      print $child;
      print_children($child, $ebene+1);
   }
}

Beste Grüße
kyle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.867
Beiträge
1.539.636
Mitglieder
67.860
Neuestes Mitglied
Hawkness
Oben