php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-10-2005, 10:07
DietmarBr
 Newbie
Links : Onlinestatus : DietmarBr ist offline
Registriert seit: Oct 2005
Ort: FRH
Beiträge: 2
DietmarBr ist zur Zeit noch ein unbeschriebenes Blatt
Standard xml-Datei einlesen

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:
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 />');
   }

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

Geändert von DietmarBr (12-10-2005 um 10:15 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 12-10-2005, 13:40
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du müsstest (soweit ich es verstehe) mit der struktur arbeiten - bis jetzt hast du eine allumfassende holzfällermethode.

ich würde erst alle einträge festhalten - get_elements_by_tagname('entity') gibt mir ein array voller knoten (news).

jedes einzelne durchlaufend (über child_nodes() ansprechen) kannst du prüfen, ob es kinder namens "bild" hat - wenn ja, lassen sie sich bestimmt in ein array einlesen, durchlaufen und über get_content() ausgeben.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-10-2005, 14:19
DietmarBr
 Newbie
Links : Onlinestatus : DietmarBr ist offline
Registriert seit: Oct 2005
Ort: FRH
Beiträge: 2
DietmarBr ist zur Zeit noch ein unbeschriebenes Blatt
Standard Danke penizillin

für deine Antwort und die Anregungen.

Das hatte ich soweit auch schon probiert, und ich habe auch alle Bild-Knoten in ein Array ein- bzw. wieder auslesen können. Das Problem ist allerdings, dass in den Bild-Knoten kein Anhaltspunkt steht, zu welchem Artikel sie gehören.

Aber mir ist da vorhin ne Idee gekommen, hab sie allerdings noch nicht getestet:

Ich müßte alle <entity> durchlaufen und nach diesem mit dem richtigen <id>-Knoten suchen. Wenn ich diesen gefunden habe, müsste ich alle Knoten welche sich in diesem <entity> befinden in ein Array einlesen. Dieses könnte man ja dann einfach weiterverarbeiten.

Das Problem ist nur, dass ich momentan keinen Plan habe, wie ich das anstellen soll, da ja get_element_by_id nicht funzt!

Gruß, Dietmar

Geändert von DietmarBr (12-10-2005 um 14:27 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 12-10-2005, 14:31
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Das Problem ist allerdings, dass in den Bild-Knoten kein Anhaltspunkt steht, zu welchem Artikel sie gehören.
das habe ich mit "holzfällermethode" gemeint.

Zitat:
Ich müßte alle <entity> durchlaufen [...]
genau das habe ich dir doch vorhin gesagt!

Zitat:
Das Problem ist nur, dass ich momentan keinen Plan habe, wie ich das anstellen soll
auch dazu habe ich dir ein paar ratschläge gegeben.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:28 Uhr.