XML-Attribute via Namen einlesen

King Euro

Erfahrenes Mitglied
Ich bin gerade dabei eine XML-Datei einzulesen und nun bin ich auf folgendes Problem gestoßen:

PHP:
$attributes = $xml->Bestellungen->Kunde[$i1]->Tag[$i2]->attributes();
$datum   = $attributes[0];
$blahaha = $attributes[1];

z.Z. lese ich so die Attribute ein, allerdings kann es durchaus sein, dass eines fehlt oder sich die Reihenfolge ändert, darum wäre es besser wenn ich das jeweilige Attribut beim "Namen" nennen könnte.
So in etwa: $datum = $attributes['name'];

Ist das irgendwie möglich? :-(

Ich bedanke mich schonmal für die Hilfe! :)
 
Hi, versuchs mal so:

PHP:
$tmp = $xml->Bestellungen->Kunde[$i1]->Tag[$i2]->attributes();
$attributes = array();

foreach($tmp as $name => $value)
{
	$attributes[$name] = $value;
}

unset($tmp);

$datum   = (isset($attributes['datum'])) ? $attributes['datum'] : false;
$blahaha = (isset($attributes['blahaha'])) ? $attributes['blahaha'] : false;

Das müsste dir ein Array $attributes erzeugen, in dem du den Namen des Attributs als Schlüssel hast. Dann kannst du die Werte erhalten, wie in den letzten beiden Zeilen, musst halt nur dabei immer prüfen, ob das Attribut vorhanden ist.
 
Klappt super, danke!
Ich dachte erst, dass es nicht gehen würde, weil nie was ausgegeben wurde, aber das lag dann daran, dass es "Datum" und nicht "datum" in der XML heißt, aber das ist ja mein Fehler, da ich das nicht angegeben hatte.

DANKE! :)
 
Du kannst ja noch die Schleife ersetzen durch

PHP:
foreach($tmp as $name => $value) 
{ 
    $attributes[strtolower($name)] = $value; 
}

dann hast du kein Problem mehr mit Groß- und Kleinschreinbung. ;)
 
Stimmt natürlich, hätte ich auch alleine drauf kommen könne. Naja, manchmal hat man halt 'ne Blockade im Kopp! :-)

Man weiß ja nie wie meine Mitarbeiter die Schreibweise ändern. *g*
Danke für den Tipp! :)
 
Zurück