• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP 5: Verarbeitung von XML-Daten

Basti93

Blogger
Guten Tag.

Ich beschäftige mich momentan mit der Verarbeitung von XML-Daten mit PHP 5. Leider gibt es dazu im Internet nicht wirklich detailierte Tutorials (nur grobe Grundlagen). Deswegen konnte ich ein Problem bis jetzt nicht lösen - vielleicht könntet ihr mir ja helfen?

Es geht im Prinzip um eine XML-Datei mit folgendem Aufbau (Beispiel):

HTML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<user_list>
  <user name="Max-Mustermann">
    <password>Musterweg</password>
  </user>
  <user name="Mr.Test">
    <password>TestY</password>
  </user>
  <user name="Person_C">
    <password>Testperson</password>
  </user>
</user_list>

Wie man sicher gut erkennen kann, geht es um einen Login-Skript ;-)

Ich möchte nun prüfen, ob es eine bestimmte Kombination von einem Benutzernamen ($user) und einem Passwort ($passwort) gibt.

Also etwa so:

HTML:
  <user name="$user">
    <password>$passwort</password>
  </user>

Das Problem ist, das ich es nicht hinbekomme, ein einzelnes Element über sein Attribut anzusprechen.

Also etwa so: <user_list> -> <user name="$user"> -> <password>


Ich hoffe, ihr habt verstanden, was ich meine und könnt mir helfen.
Vielen Dank schon mal im voraus!
 
Werbung:
Werbung:
PHP:
var_dump( simplexml_load_file('foo.xml') );
Daran kannst du ganz gut sehen, wie du auf was zugreifen kannst. Ich glaube allerdings, die Benutzer kannst du nur über numerische Indizes (in der Reihenfolge, wie sie in der Datei stehen) ansprechen. Also z.B. so:
PHP:
$xml->user[3]['name'], $xml->user[3]->password

Dann müsstest du also per Schleife durch das XML-Objekt gehen, bis du den Namen gefunden hast, und dann prüfen, ob das Passwort passt - erscheint mir sehr aufwändig. Ich weiß auch nicht, ob es noch anders geht (also ohne sich selbst einen XML-Parser zu basteln).

Gruß,
Björn
 
Was hat denn nicht geklappt? Wenn du eine XML-Datei damit ausliest, wird ein assoziatives Array aus den Tags und den Inhalten erstellt, da hast du alle Daten die du brauchst.

PHP:
$settings = new SimpleXMLElement(settings.xml, null, true);
print_r($settings);
 
Werbung:
Was hat denn nicht geklappt? Wenn du eine XML-Datei damit ausliest, wird ein assoziatives Array aus den Tags und den Inhalten erstellt, da hast du alle Daten die du brauchst.

Ich habe es nur hinbekommen, ein user-Element über seine Position anzusprechen (also z.B. user[5]).

zu BcF:

Eine Schleife würde wahrscheinlich funktionieren, aber das erscheint auch mir etwas umständlich.

Kennt jemand eine bessere Möglichkeit?
 
Zurück
Oben