hallo,
ich muss mich seit kurzem auch mit dem Einlesen von xml-Datein mit php beschäftigen. Generell denke ich, das ich das Grundprinzip verstanden habe. Nun bin ich aber an einer Sache, bei der ich überhaupt nicht weiterkomme. Vielleicht könnte mir einer von euch helfen!
Es geht um folgendes:
Ich muss eine xml-Datei von einem externen Server parsen und weiterverarbeiten. Diese Datei hat folgende Struktur:
<?xml version="1.0" encoding="ISO-8859-1"?>
<news>
<entity>
<id></id>
<titel></titel>
<hauptueberschrift></hauptueberschrift>
<unterueberschrift></unterueberschrift>
<text></text>
<start></start>
<ende></ende>
<hauptrubrik></hauptrubrik>
<unterrubrik></unterrubrik>
<thumb></thumb>
<bild></bild>
<bild></bild>
<bild></bild>
<bild></bild>
</entity>
</news>
Zu beachten ist, dass die Anzahl der Knotenpunkte <bild> je nach Artikel unterschiedlich sein können - d.h. - es gibt Artikel mit einem Bild-Knoten, und es kann Artikel mit bis zu 10 Bild-Knoten geben. Wie gesagt, die Datei liegt extern - ich kann sie nur über einen Link aufrufen, und die Datei verfügt über keine "dtd" - d.h. ich kann den gewünschten Artikel auch nicht mit get_element_by_id aufrufen. Da das Ganze in ein anderes System eingebunden ist welches mit php4 läuft, kann ich kein php5 verwenden.
Was will ich nun tun! Bei meinem ersten Aufruf lese ich die Knoten "titel, thumb und teile von text" aus (dies funzt) am ende dieser Ausgabe steht "weiterlesen..." wenn man darauf klickt, kommt der gesamte Artikel - dies funzt auch. Mein Problem ist nun, dass wenn ein Artikel mehrere Bild-Knoten hat, das Ganze durcheinander kommt - also ab deiesem Artikel (mit mehreren Bilder) kommen in den nachfolgenden Artikeln falsche Bilder.
Beispiel:
der zweite Artikel hat drei Bilder!
-> der erste kommt richtig
-> im zweiten steht nur das erste Bild drin
-> im dritten kommt das zweite Bild vom zweiten
-> im vierten kommt das dritte Bild vom zweiten
Für die Abfrage habe ich folgendes verwendet:
Wie gesagt, Frust pur! - ich komme einfach auf keinen grünen Zweig.
Wenn sich bitte jemand melden würde, wäre ich euch echt Dankbar.
Gruß, Dietmar
ich muss mich seit kurzem auch mit dem Einlesen von xml-Datein mit php beschäftigen. Generell denke ich, das ich das Grundprinzip verstanden habe. Nun bin ich aber an einer Sache, bei der ich überhaupt nicht weiterkomme. Vielleicht könnte mir einer von euch helfen!
Es geht um folgendes:
Ich muss eine xml-Datei von einem externen Server parsen und weiterverarbeiten. Diese Datei hat folgende Struktur:
<?xml version="1.0" encoding="ISO-8859-1"?>
<news>
<entity>
<id></id>
<titel></titel>
<hauptueberschrift></hauptueberschrift>
<unterueberschrift></unterueberschrift>
<text></text>
<start></start>
<ende></ende>
<hauptrubrik></hauptrubrik>
<unterrubrik></unterrubrik>
<thumb></thumb>
<bild></bild>
<bild></bild>
<bild></bild>
<bild></bild>
</entity>
</news>
Zu beachten ist, dass die Anzahl der Knotenpunkte <bild> je nach Artikel unterschiedlich sein können - d.h. - es gibt Artikel mit einem Bild-Knoten, und es kann Artikel mit bis zu 10 Bild-Knoten geben. Wie gesagt, die Datei liegt extern - ich kann sie nur über einen Link aufrufen, und die Datei verfügt über keine "dtd" - d.h. ich kann den gewünschten Artikel auch nicht mit get_element_by_id aufrufen. Da das Ganze in ein anderes System eingebunden ist welches mit php4 läuft, kann ich kein php5 verwenden.
Was will ich nun tun! Bei meinem ersten Aufruf lese ich die Knoten "titel, thumb und teile von text" aus (dies funzt) am ende dieser Ausgabe steht "weiterlesen..." wenn man darauf klickt, kommt der gesamte Artikel - dies funzt auch. Mein Problem ist nun, dass wenn ein Artikel mehrere Bild-Knoten hat, das Ganze durcheinander kommt - also ab deiesem Artikel (mit mehreren Bilder) kommen in den nachfolgenden Artikeln falsche Bilder.
Beispiel:
der zweite Artikel hat drei Bilder!
-> der erste kommt richtig
-> im zweiten steht nur das erste Bild drin
-> im dritten kommt das zweite Bild vom zweiten
-> im vierten kommt das dritte Bild vom zweiten
Für die Abfrage habe ich folgendes verwendet:
PHP-Code:
$dom = domxml_open_file("http:/link/xml-Datei.php");
$root = $dom->document_element();
$node_id = $root->get_elements_by_tagname("id");
$node_titel = $root->get_elements_by_tagname("titel");
$node_text = $root->get_elements_by_tagname("text");
$node_bild = $root->get_elements_by_tagname("bild");
for ($i = 0; $i<count($node_id); $i++) {
$id = $node_id[$i];
$titel = $node_titel[$i];
$text = $node_text[$i];
$bild= $node_bild[$i];
if ($id->get_content() == $wahl) {
print ('<b>' . utf8_decode($titel->get_content()) . '</b><br />');
print (utf8_decode($text->get_content()) . '<br />');
print ('<img src='.$bild->get_content().'><br /><br />');
}
}
Wenn sich bitte jemand melden würde, wäre ich euch echt Dankbar.
Gruß, Dietmar
Kommentar