SimpleXMLElement::children
(PHP 5, PHP 7, PHP 8)
SimpleXMLElement::children — Findet Kindelemente des gegebenen Knotens
Beschreibung
$namespaceOrPrefix
= null
, bool $isPrefix
= false
): ?SimpleXMLElementDie Methode findet Kinder eines Elements. Das Ergebnis entspricht den normalen Iterierungsregeln.
Hinweis: SimpleXML definiert für die meisten Methoden Regeln für das Hinzufügen von iterativen Eigenschaften. Diese können weder mit var_dump() oder auf andere Weise angezeigt werden.
Parameter-Liste
-
namespaceOrPrefix
-
Ein XML-Namensraum.
-
isPrefix
-
Ist
isPrefix
true
, dann wirdnamespaceOrPrefix
als Prefix interpretiert. Ist esfalse
, dann wirdnamespaceOrPrefix
als Namensraum-URL interpretiert.
Rückgabewerte
Gibt ein SimpleXMLElement-Objekt zurück, unabhängig
davon, ob der Knoten Kindknoten hat oder nicht, außer der Knoten stellt ein
Attribut dar, denn in diesem Fall wird null
zurückgegeben.
Beispiele
Beispiel #1 Ein children()
-Pseudo-Array durchlaufen
<?php
$xml = new SimpleXMLElement(
'<person>
<child role="Sohn">
<child role="Tochter"/>
</child>
<child role="Tochter">
<child role="Sohn">
<child role="Sohn"/>
</child>
</child>
</person>');
foreach ($xml->children() as $second_gen) {
echo ' Die Person zeugte eine/n ' . $second_gen['role'];
foreach ($second_gen->children() as $third_gen) {
echo ', die/der eine/n ' . $third_gen['role'] . ' zeugte;';
foreach ($third_gen->children() as $fourth_gen) {
echo ' und diese/r ' . $third_gen['role'] .
' zeugte eine/n ' . $fourth_gen['role'];
}
}
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Die Person zeugte eine/n Sohn, die/der eine/n Tochter zeugte; Die Person zeugte eine/n Tochter, die/der eine/n Sohn zeugte; und diese/r Sohn zeugte eine/n Sohn
Beispiel #2 Arbeiten mit Namensräumen
<?php
$xml = '<example xmlns:foo="my.foo.urn">
<foo:a>Apfel</foo:a>
<foo:b>Banane</foo:b>
<c>Kirsche</c>
</example>';
$sxe = new SimpleXMLElement($xml);
$kids = $sxe->children('foo');
var_dump(count($kids));
$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));
$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));
$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));
$kids = $sxe->children();
var_dump(count($kids));
?>
int(0) int(2) int(2) int(0) int(1)
Siehe auch
- SimpleXMLElement::count() - Counts the children of an element
- count() - Zählt alle Elemente eines Arrays oder eines Countable-Objekts