Node¶
Die \Alvine\Xml\Node
-Klasse erweiter die \Alvine\Types\Node
-Klasse
um Funktionen für den Umgang mit XML-Strukturen.
// Eltern-Node
$obj=new \Alvine\Xml\Node('parent');
// Kind hinzufügen
$obj->appendChild(new \Alvine\Xml\Node('child'));
// Über den Tagnamen erhält man eine Referenz
// auf das Objekt ($obj->parent) ist identisch zu $obj)
echo (string) $obj->parent;
// -> <parent>
// -> <child/>
// -> </parent>
// Zugriff auf die Kinder liefert NodeList
// zurück (beide Aufrufe sind gleichbedeutend)
echo $obj->parent->child;
// -> <child/>
echo $obj->child;
// -> <child/>
// auf die XML-Zeichenkette kann mit
// dem Schlüsselwort xml zugegriffen werden.
echo $obj->xml;
// <parent>
// <child/>
//</parent>
Eine XML-Node besitzt einen der folgenden Typen:
Konstante | Wert | Beschreibung |
---|---|---|
NODE | 0 | Standardnode |
ELEMENT | 1 | Element |
DOCUMENT | 2 | XML-Dokument |
Attribuite¶
Attribute im XML-Tag können über die Methode
\Alvine\Xml\Node::setAttributeValue($name, $value)
gesetzt und geändert werden. Mittels der Funktion
\Alvine\Xml\Node::removeAttribute($name)
kann ein Attribute entfernt werden.
// Eltern-Node
$obj=new \Alvine\Xml\Node('parent');
$obj->setAttributeValue('attributeA', '1');
$obj->setAttributeValue('attributeB', '2');
echo (string)$obj;
// -> <parent attributeA="1" attributeB="2"/>
$obj->removeAttribute('attributeB');
echo (string)$obj;
// -> <parent attributeA="1"/>
Alle Attribute lassen sich über die Methode \Alvine\Xml\Node::getAttributes()
auslesen. Das Ergebnis ist
ein Objekt vom Typ \Alvine\Xml\AttributeMap
.