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.