Frage

Ich lese XML mit PHP und verwende derzeit die DOMDocument Klasse, um dies zu tun. Ich brauche eine Möglichkeit, die Namen und Werte eines Tags zu erfassen (Instanz von DOMElement) Attribute, ohne vorher zu wissen, was eines von ihnen ist. Das Dokumentation Scheint so etwas nicht zu bieten. Ich weiß, dass ich den Wert eines Attributs erhalten kann, wenn ich seinen Namen habe, aber ich kenne noch keine davon und muss beides finden.

Ich weiß auch, dass andere Klassen mögen SimpleXMLElement Haben Sie diese Fähigkeit, aber ich bin interessiert daran, wie es gemacht werden kann, mit DOMDocument.

War es hilfreich?

Lösung

Sie können alle Attribute eines bestimmten Domnode mit dem erhalten Domnode-> Attribute Eigenschaft, es wird Sie zurückgeben DomnamedNodemap enthalten die Attributnamen und -Werte.

foreach ($node->attributes as $attrName => $attrNode) {
    // ...
}

Andere Tipps

Wenn Sie Attributname und Attributwerte (nicht die Attributenodes) abrufen möchten, müssen Sie die Eigenschaft $ attrnode-> nodeValue des Domnode-Objekts aufrufen.

$attributes = array();

foreach($element->attributes as $attribute_name => $attribute_node)
{
  /** @var  DOMNode    $attribute_node */
  $attributes[$attribute_name] = $attribute_node->nodeValue;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top