1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

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

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von P.Stylez, 18.01.08.

  1. P.Stylez

    P.Stylez Cripps Pink

    Dabei seit:
    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 :(
     
    #1 P.Stylez, 18.01.08
    Zuletzt bearbeitet: 19.01.08
  2. P.Stylez

    P.Stylez Cripps Pink

    Dabei seit:
    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...
     
    #2 P.Stylez, 18.01.08
    Zuletzt bearbeitet: 19.01.08
  3. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454
    Wäre fein wenn Du deine Lösung posten würdest - vielleicht hilft sie ja irgendwann mal jemandem...
     
  4. P.Stylez

    P.Stylez Cripps Pink

    Dabei seit:
    03.11.06
    Beiträge:
    152

Diese Seite empfehlen