PHP XML Werte auslesen

Hallo!

Ich komme irgendwie mit dem auslesen einer xml Datei nicht klar. Ich hole mir die von mobile.de und speichere diese in einer Datei ab. Anschließend wird die geöffnet.

PHP:
$mobile_xml = simplexml_load_file('yourxmlfile.xml');
In dieser befindet sich z.B. folgendes

Code:
<search:result total="60" page-size="20" current-page="1" max-pages="3">
<ad:ad key="152942875" url="http://services.mobile.de/1.0.0/ad/152942875">
   <ad:creation-date value="2013-04-15T08:32:38+02:00"/>
</ad:ad>
.....

Wie kann ich jetzt z.B. diesen ersten key 152942875 in PHP auslesen und dann z.B. den zweiten. Es gibt 60 solcher Einträge.
 
Das stimmt!

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><search:result xmlns:resource="http://services.mobile.de/schema/resource" xmlns:seller="http://services.mobile.de/schema/seller" xmlns:ad="http://services.mobile.de/schema/ad" xmlns:financing="http://services.mobile.de/schema/common/financing-1.0" xmlns:search="http://services.mobile.de/schema/search" total="60" page-size="20" current-page="1" max-pages="3">
 
Ich geb zu, die API von SimpleXML ist ein wenig gewöhungsbedürftig, aber hier wäre mal ein Beispiel, um die erwähnten keys zu extrahieren:

PHP:
<?php

$tree = simplexml_load_file('td.xml');
$ns = $tree->children('http://services.mobile.de/schema/ad');

foreach($ns as $ad) {
    $attributes = $ad->attributes();
    $key = (string) $attributes['key'];
    
    var_dump($key);
}

HTML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<search:result xmlns:resource="http://services.mobile.de/schema/resource" xmlns:seller="http://services.mobile.de/schema/seller" xmlns:ad="http://services.mobile.de/schema/ad" xmlns:financing="http://services.mobile.de/schema/common/financing-1.0" xmlns:search="http://services.mobile.de/schema/search" total="60" page-size="20" current-page="1" max-pages="3">

<ad:ad key="152942875" url="http://services.mobile.de/1.0.0/ad/152942875">
   <ad:creation-date value="2013-04-15T08:32:38+02:00"/>
</ad:ad>

<ad:ad key="152942876" url="http://services.mobile.de/1.0.0/ad/152942875">
   <ad:creation-date value="2013-04-15T08:32:38+02:00"/>
</ad:ad>

<ad:ad key="152942877" url="http://services.mobile.de/1.0.0/ad/152942875">
   <ad:creation-date value="2013-04-15T08:32:38+02:00"/>
</ad:ad>

<ad:ad key="152942878" url="http://services.mobile.de/1.0.0/ad/152942875">
   <ad:creation-date value="2013-04-15T08:32:38+02:00"/>
</ad:ad>

</search:result>
Code:
⎈ ⇢ php test.php 
string(9) "152942875"
string(9) "152942876"
string(9) "152942877"
string(9) "152942878"
 
Zurück
Oben