XML parsen mit Attribut und dynamischen Tags

Pollux

Erfahrenes Mitglied
Hallo,

ich habe schon die Suchfunktion versucht und auch Google, leider ohne Erfolg.
Ich habe nach einem Tutorial hier eine XML-Datei in ein Objekt ($xml) überführt und würde jetzt gerne darauf zugreifen, allerdings habe ich zwei kleine (für mich schwerwiegende Probleme):

1. Attribut. Die Datei sieht so aus
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Database OverAllResults="2">

<DVD1>
<Titel>Matrix Reloaded</Titel>
<FSK>16</FSK>
<Laufzeit>133</Laufzeit>
<Genre>Science Fiction</Genre>
</DVD1>

<DVD2>
<Titel>Matrix Reloaded - 2-Disc-Edition</Titel>
<FSK>16</FSK>
<Laufzeit>133</Laufzeit>
<Genre>Science Fiction</Genre>
</DVD2>

</Database>

Ich würde jetzt gerne auf das OverAllResults zugreifen, weiss allerdings nicht, wie ich das machen soll.

2) dynamische Tags: Als nächstes muss ich die einzelnen Einträge ansprechen: <DVD1> und danach <DVD2> und das mit einer if-Schleife, allerdings fehlt mir die Syntax, wie ich den statischen Teil mit der Variablen verknüpfe. Mit
PHP:
"DVD".$id
geht es nicht :-/

Brauche wirklich dringend Hilfe :(

Danke schonmal im Vorfeld.
 
Hallo,

leider hast du vergessen zu erwähnen wie genau du deine XML-Datei in ein Objekt überführst, also welche Methode du aus PHP dazu verwendest. Ich gehe der Einfachheit halber einfach mal von SimpleXML aus.

PHP:
<?php

$xmlstr = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<Database OverAllResults="2">

<DVD>
<Titel>Matrix Reloaded</Titel>
<FSK>16</FSK>
<Laufzeit>133</Laufzeit>
<Genre>Science Fiction</Genre>
</DVD>

<DVD>
<Titel>Matrix Reloaded - 2-Disc-Edition</Titel>
<FSK>16</FSK>
<Laufzeit>133</Laufzeit>
<Genre>Science Fiction</Genre>
</DVD>

</Database>
XML;

$xml = new SimpleXMLElement($xmlstr);
print_r($xml['OverAllResults']);

?>

ach und du siehst da auch gleich deine zweite Frage mehr oder weniger beantwortet: Es macht wenig Sinn "DVD1" und "DVD2" etc. zu machen, denn eine DVD ist eine DVD und es geht ja in XML darum Daten strukturiert aufzunehmen. Nehme die ID lieber als Attribut, das macht mehr Sinn.
 
Danke, erstmal. Das mit den OverAllResults klappt. Scheint ja recht einfach zu sein. *schäm*
In der Tat übergebe ich die XML-Datei per SimpleXML.

An der XML-Datei kann ich leider nichts ändern. Daher bräuchte ich trotzdem eine Möglichkeit, wie ich eine Variable in die Abfrage mit reinbekomme.
 
Ich will natürlich mit ner for-Schleife durchlaufen und wie es scheint, klappt das jetzt auch. :)
Werde noch kurz testen und dann auf erledigt stellen.

Vielen Dank!
 
Zurück