Hallo,
mit XML fange ich gerade erst an und komme mit einfachen Dokumenten so einigermaßen zurecht.
Beispiel:
Dies lese ich wie folgt aus:
und funktioniert, die Daten werden in die DB geschrieben.
Fall 2:
Die Datei sieht (anders) folgendermaßen aus:
Wie lese ich diese Daten aus? Wenn möglich bitte mit Beispiel auf die Datei Fall 2 bezogen.
Danke.
mit XML fange ich gerade erst an und komme mit einfachen Dokumenten so einigermaßen zurecht.
Beispiel:
PHP Code:
<articleExport>
-
<exportMetas>
<channel>Horoskope</channel>
<subChannel>Wochenhoroskop</subChannel>
-
<dates>
<begin>2009-07-06</begin>
<end>2009-07-12</end>
</dates>
</exportMetas>
-
<exportItems>
-
<item>
<zodiacSign>Widder</zodiacSign>
-
<content_love>
<headline>Love & Friends</headline>
-
<content>
In Liebesdingen sind sie sehr kritisch
</content>
</content_love>
-
<content_job>
<headline>Job & Cash</headline>
-
<content>
Im Job läufts gut
</content>
</content_job>
-
<content_fitness>
<headline>Fitness & Feeling</headline>
-
<content>
Sie könnten etwas mehr Fitness vertragen
</content>
</content_fitness>
</item>
</exportItems>
</articleExport>
PHP Code:
$backend = 'wochenhoroskop.xml';
$handle = @fopen($backend,'r');
if($handle !== false)
{
$xml = simplexml_load_file($backend);
// Titel auslesen
$title = $xml->exportMetas->subChannel;
// Woche von bis auslesen und umwandeln
$date = $xml->exportMetas->dates->begin;
$zb = explode('-', $date);
$datebegin = $zb[2].'.'.$zb[1].'.'.$zb[0];
$end = $xml->exportMetas->dates->end;
$ze = explode('-', $end);
$dateend = $ze[2].'.'.$ze[1].'.'.$ze[0].'';
// Pfad zum Sternzeichen
$res = $xml->xpath('/articleExport/exportItems/*');
$fehler = 0;
// Insert Alle
$i = 0;
while ($i < 12)
{
if ( $res[$i] == $res[0] ) {$resid = '00';}
elseif ( $res[$i] == $res[1] ) {$resid = '01';}
elseif ( $res[$i] == $res[2] ) {$resid = '02';}
elseif ( $res[$i] == $res[3] ) {$resid = '03';}
elseif ( $res[$i] == $res[4] ) {$resid = '04';}
elseif ( $res[$i] == $res[5] ) {$resid = '05';}
elseif ( $res[$i] == $res[6] ) {$resid = '06';}
elseif ( $res[$i] == $res[7] ) {$resid = '07';}
elseif ( $res[$i] == $res[8] ) {$resid = '08';}
elseif ( $res[$i] == $res[9] ) {$resid = '09';}
elseif ( $res[$i] == $res[10] ) {$resid = '10';}
elseif ( $res[$i] == $res[11] ) {$resid = '11';}
$sql = "INSERT INTO wochenhoroskop (resid,zodiacsign,datebegin,dateend,title,headline_love,headline_job,headline_fitness,content_love,content_job,content_fitness,fehler)
VALUES ('".$resid."','".$res[$i]->zodiacSign."','".$datebegin."','".$dateend."','".$title."','".$res[$i]->content_love->headline."','".$res[$i]->content_job->headline."','".$res[$i]->content_fitness->headline."','".$res[$i]->content_love->content."','".$res[$i]->content_job->content."','".$res[$i]->content_fitness->content."','$fehler')";
$i++;
$result = mysql_query($sql) or die(mysql_error());
}
}
Fall 2:
Die Datei sieht (anders) folgendermaßen aus:
PHP Code:
<horoscope:horoscope>
−
<horoscope:horoscope date="2009-07-05" validuntil="2009-07-31T23:59:59.00">
−
<horoscope:zodiacsign name="Widder" fromdate="2009-03-21" todate="2009-04-20">
−
<horoscope:monthlyhoroscope>
−
<horoscope:section title="Lust & Liebe">
In Liebesdingen sind sie sehr kritisch
</horoscope:section>
−
<horoscope:section title="Beruf & Finanzen">
Ihr Beruf macht ihnen Freude
</horoscope:section>
−
<horoscope:section title="Gesundheit & Fitness">
Ihnen geht es gesundheitlich gut
</horoscope:section>
</horoscope:monthlyhoroscope>
Danke.