• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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: