Nodes erlauben die Verwaltung von Baumstrukturen.
Von Nodes sind zum einen die XML-Klassen als auch
die HTML Komponente abgeleitet.
$node = new Node();
$node->appendChild(new Node());
Die Klasse implementiert das Interface RecursiveIterator,
über das die Node rekursive durchsucht werden kann.
$iteratorIterator = new \RecursiveIteratorIterator($node->getChildren(), \RecursiveIteratorIterator::SELF_FIRST, \RecursiveIteratorIterator::CATCH_GET_CHILD);
foreach($iteratorIterator as $node) {
}
Methods summary
public
|
#
__construct( string $name, mixed $value = null )
Erstellt ein neues Node-Objekt
Erstellt ein neues Node-Objekt
Parameters
|
public
|
#
__destruct( )
Referenzen auflösen und GC starten
Referenzen auflösen und GC starten
|
public
Alvine\Types\Node
|
#
appendChild( Alvine\Types\Node $node )
Neue Node als Kind einhängen
Neue Node als Kind einhängen
Parameters
Returns
|
public
Alvine\Types\Node
|
#
replaceChildren( Alvine\Types\Node $search, Alvine\Types\Node $replace )
Diese Methode ersetzt die Node $search in der Liste der
Kinder mit der neuen Node $replace. Ist die Node mehrfach
vorhanden so wird diese mehrfach ersetzt. Die Prüfung
erfolgt über die Methode Node::equals. Ist die Node nicht
vorhanden, so wird diese nicht ersetzt.
Diese Methode ersetzt die Node $search in der Liste der
Kinder mit der neuen Node $replace. Ist die Node mehrfach
vorhanden so wird diese mehrfach ersetzt. Die Prüfung
erfolgt über die Methode Node::equals. Ist die Node nicht
vorhanden, so wird diese nicht ersetzt.
Parameters
- $search
- Zu ersetzende Node
- $replace
- Neue Node
Returns
|
protected
Alvine\Types\NodeList
|
#
getNewNodeList( )
Um die richtige NodeList, für abgeleitete Klassen zu erstellen
wird bei allen Methoden die Nodelist über diese interne Methode
erstellt. Abgeleitete Klassen, können hier eine eigene NodeList
erstellen lassen.
Um die richtige NodeList, für abgeleitete Klassen zu erstellen
wird bei allen Methoden die Nodelist über diese interne Methode
erstellt. Abgeleitete Klassen, können hier eine eigene NodeList
erstellen lassen.
Returns
|
public
Alvine\Types\Node
|
#
setValue( mixed $value )
Den Wert der Node setzen.
Den Wert der Node setzen.
Parameters
Returns
|
public
mixed
|
#
getValue( )
Der Wert holen
Returns
mixed Wert
|
public
string
|
#
getName( )
Den Tag abfragen
Returns
string Tag
|
public
Alvine\Types\Node
|
#
setParent( Alvine\Types\Node $parent )
Die Eltern-Node einer Node setzen
Die Eltern-Node einer Node setzen
Parameters
Returns
|
public
Alvine\Types\Node
|
#
unsetParent( )
ElternNode entfernen
Returns
|
public
boolean
|
#
containsNode( Alvine\Types\Node $node )
Diese Methode prüft, ob
die übergebene Node identisch mit
dieser Node oder einem der Kinder ist.
Diese Methode prüft, ob
die übergebene Node identisch mit
dieser Node oder einem der Kinder ist.
Diese Methode arbeitet anders als andere
Methoden dieser Klasse rekursive.
Als Vergleichsfunktion wird Node::equals() verwendet.
Parameters
Returns
boolean Ergebnis
|
public
Alvine\Types\Node
|
#
getParent( )
Die Eltern-Node abfragen
Returns
|
public
Alvine\Types\NodeList
|
#
getChildren( string $name = null )
Kinder
Die Kinder der Node abfragen. Wird ein Tag
angegeben, so werden nur Kinder mit diesem
Tag zurückgegeben.
Parameters
Returns
Implementation of
RecursiveIterator::getChildren()
|
public
integer
|
#
getLevel( )
Da der Level im Objekt von außen
gesetzt wird, kann dieser Wert
von dem tatsächlichen abweichen.
Da der Level im Objekt von außen
gesetzt wird, kann dieser Wert
von dem tatsächlichen abweichen.
Returns
integer Level
|
public
Alvine\Types\Node
|
#
setChildren( Alvine\Types\NodeList $children )
Die aktuellen Kinder werden durch die
übergebenen Kinder vollständig ersetzt.
Die aktuellen Kinder werden durch die
übergebenen Kinder vollständig ersetzt.
Parameters
Returns
|
public
mixed|Alvine\Types\NodeList
|
#
__get( string $name )
Über diese magische Funktion wird der Zugriff auf diese
Node und die Kindelemente über den Objekt-Operator -> geregelt.
Anders als der Setter wird kein Value gesetzt.
Über diese magische Funktion wird der Zugriff auf diese
Node und die Kindelemente über den Objekt-Operator -> geregelt.
Anders als der Setter wird kein Value gesetzt.
Diese Methode liefert in einem Fall eine Node und im
anderen Fall eine NodeList.
$obj = new Node('parent');
$obj->appendChild(new Node('child'));
echo (string) $obj->parent;
echo $obj->parent->child;
echo $obj->child;
Parameters
- $name
- Name der Eigenschaft
Returns
Throws
Overrides
|
public
|
#
__set( string $name, mixed $value )
Magischer Setter
Diese Methode setzt Werte der Klasse über den Klassenoperator, dabei
muss die Eigenschft identisch mit dem Tagnamen sein.
$obj = new Node('mytag');
$obj->mytag='hallo'
Parameters
- $name
- Name der Eigenschaft
- $value
- Wert der Eigenschaft
Throw
\Alvine\Core\BadPropertyException Eigenschaft ist nicht identisch mit Tagname
Overrides
|
protected
Alvine\Types\NodeList
|
#
getChildNodeListByTagName( string $name )
getChildNodeListByTagName
getChildNodeListByTagName
Erstellt eine NodeList mit allen Kindelemente der
ersten Ebene, die den entsprechenden
Tagnamen besitzen.
Parameters
Returns
|
public
|
#
rewind( )
Implementierung des Iteration Interfaces.
Internen Zähler zurücksetzen.
Implementierung des Iteration Interfaces.
Internen Zähler zurücksetzen.
Implementation of
Iterator::rewind()
|
public
string
|
#
current( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
string aktuelles String-Objekt
Implementation of
Iterator::current()
|
public
string
|
#
key( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
string Keys
Implementation of
Iterator::key()
|
public
mixes
|
#
next( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
mixes nächster Eintrag
Implementation of
Iterator::next()
|
public
boolean
|
#
valid( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
boolean Status der Iteration
Implementation of
Iterator::valid()
|
public
|
#
offsetSet( simple $index, Alvine\Types\Node $node )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
Parameters
Implementation of
ArrayAccess::offsetSet()
|
public
boolean
|
#
offsetExists( simple $index )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
Parameters
Returns
boolean true/false
Implementation of
ArrayAccess::offsetExists()
|
public
|
#
offsetUnset( simple $index )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
Parameters
Implementation of
ArrayAccess::offsetUnset()
|
public
Alvine\Types\Node
|
#
offsetGet( simple $index )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
Parameters
Returns
Implementation of
ArrayAccess::offsetGet()
|
public
string
|
#
__toString( )
Liefert einen Zeichenkette zurück
Liefert einen Zeichenkette zurück
Returns
string Zeichenkette
Overrides
|
public
|
#
removeIndex( integer $index )
Löscht ein Kinder-Element
Löscht ein Kinder-Element
Parameters
|
public
Alvine\Types\Node
|
|
public
Alvine\Types\Node
|
#
truncate( )
Löscht alle Kindelemente in dem eine
neue NodeListe über die Funktion Node::getNewNodeList()
erstellt wird.
Löscht alle Kindelemente in dem eine
neue NodeListe über die Funktion Node::getNewNodeList()
erstellt wird.
Returns
|
public
|
#
__clone( )
Erstellt eine Kopie dieser Node.
Auch alle Kinder weden dabei kopiert.
Erstellt eine Kopie dieser Node.
Auch alle Kinder weden dabei kopiert.
Das Klonen setzt den internen Zeiger
auf der Liste neu (wichtig innerhalb eines
Iterators)
Overrides
|
public
Alvine\Types\Node
|
#
getFirstChild( )
Liefert das erste Kind zurück
Liefert das erste Kind zurück
Returns
|
public
Alvine\Types\Node
|
#
getLastChild( )
Liefert das letzte Kind zurück
Liefert das letzte Kind zurück
Returns
|
public
boolean
|
#
hasChildNodes( )
Prüft ob Kinder verfügbar sind
Prüft ob Kinder verfügbar sind
Returns
boolean true/false
|
public
boolean
|
#
hasChildren( )
Alias für hasChildNodes
Returns
boolean true/false
Implementation of
RecursiveIterator::hasChildren()
|
public
Alvine\Types\Node
|
#
insertAt( integer $index, Alvine\Types\Node $newNode )
Fügt ein Kind an der definierten Stelle ein
Fügt ein Kind an der definierten Stelle ein
Parameters
- $index
- Definierte Stelle
- $newNode
- Neue Node
Returns
|
public
bolean
|
#
isSameNode( Alvine\Types\Node $node )
Prüft ob diese Node identisch zu
der übergebenen ist
Prüft ob diese Node identisch zu
der übergebenen ist
Parameters
Returns
bolean true/false
|
public
Alvine\Types\Node
|
#
insertBefore( Alvine\Types\Node $newNode, Alvine\Types\Node $reference )
Fügt eine neue Node vor einer bestimmten Node ein.
Fügt eine neue Node vor einer bestimmten Node ein.
Parameters
- $newNode
- Eine Node vor einer anderen einfügen
- $reference
- Node, vor der die neue Node eingefügt werden soll
Returns
|
public
Alvine\Types\Node
|
#
insertAfter( Alvine\Types\Node $newNode, Alvine\Types\Node $reference )
Fügt eine neue Node nach einer bestimmten Node ein.
Fügt eine neue Node nach einer bestimmten Node ein.
Parameters
- $newNode
- Eine Node vor einer anderen einfügen
- $reference
- Node, vor der die neue Node eingefügt werden soll
Returns
|
public
Alvine\Types\NodeList
|
#
getInnerIterator( )
Innerer Iterator
Returns
Implementation of
OuterIterator::getInnerIterator()
|
public
Alvine\Types\NodeList
|
#
find( Alvine\Util\Constraint $constrait )
Suche nach Nodes anhand eines Constrait.
Suche nach Nodes anhand eines Constrait.
Das nachfolgende Beispiel gibt eine NodeList mit
der Node id3 aus.
$div = new Alvine\Types\Node('id1', 'value1');
$div->appendChild(new Alvine\Types\Node('id2', 'value2'));
$div->appendChild(new Alvine\Types\Node('id3', 'value3'));
$find = $div->find(new Alvine\Types\Node\Constraint\Name('id3'));
foreach($find AS $n) {
echo $n->getName()."\n";
}
Parameters
Returns
|