• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[PHP] DOMDocument - wie komme ich an ne Attributsliste..?

P.Stylez

Cripps Pink
Registriert
03.11.06
Beiträge
152
Folgendes:

Ich habe ein XML-File (test.xml) der folgenden Form:

Code:
<?xml version="1.0"?>
<foo>
  <bar attr1="attr1" attr2="attr2" attr3="attr3" />
</foo>
Mit folgendem Code bekomme ich ne Referenz auf den bar-Nodelist:

Code:
$dom = new DOMDocument();
$dom->load('test.xml');
$foo = $dom->getElementsByTagName('foo');

$bar = $foo->item(0)->getElementsByTagName('bar');
Nur wie kriege ich jetzt eine Liste/Array/whatever aller Attribute?
Mir ist klar, dass ich mittels

Code:
$attr1 = $bar->item(0)->getAttribute('attr1');
an den Wert von 'attr1' herankomme, aber ich will meine Attributsnamen keinesfalls hart reincoden, um Inkonsistenzen zu vermeiden.
Ergo wär mir sowas hier am liebsten:

Code:
$attributes = $bar->item(0)->getAttributes();
foreach($attribues as $name => $value)
{
  // do stuff ...
}
aber eine derartige Methode ist in der DOMDocument API nicht vorgesehen.

Hat irgendwer ne Idee?
Ich such gerade schon seit ner Stunde Google leer, aber irgendwie find ich nix :(
 
Zuletzt bearbeitet:

P.Stylez

Cripps Pink
Registriert
03.11.06
Beiträge
152
Hab ne Lösung gefunden ;)

statt ner Methode

Code:
DOMElement::getAttributes()

haben die einfach die Referenz auf die Attributliste als public markiert, d.h. mit

Code:
foreach($bar->item(0)->attributes as $attribute)
{
  echo $attribute->name . " " . $attribute->value . "<br>";
}

kommt man an die Attribute.

Bitte schließen...
 
Zuletzt bearbeitet: