(PHP 5, PHP 7, PHP 8)
SimpleXMLElement::children — Cherche les fils d'un nœud donné
$namespaceOrPrefix
= null
, bool $isPrefix
= false
): ?SimpleXMLElementCette méthode cherche les fils d'un élément. Le résultat suit les règles de l'itération normale.
Note: SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.
namespaceOrPrefix
Un espace de noms XML.
isPrefix
Si isPrefix
vaut true
,
namespaceOrPrefix
sera considéré comme
un préfixe.
S'il vaut false
, namespaceOrPrefix
sera
considéré comme une URL
vers un espace de noms.
Retourne un élément SimpleXMLElement
que le nœud possède un fils ou pas, sauf si le noeud représente un attribut,
auquel cas null
est retourné.
Exemple #1 Parcours d'un pseudo-tableau children()
<?php
$xml = new SimpleXMLElement(
'<person>
<child role="son">
<child role="daughter"/>
</child>
<child role="daughter">
<child role="son">
<child role="son"/>
</child>
</child>
</person>');
foreach ($xml->children() as $second_gen) {
echo ' The person begot a ' . $second_gen['role'];
foreach ($second_gen->children() as $third_gen) {
echo ' who begot a ' . $third_gen['role'] . ';';
foreach ($third_gen->children() as $fourth_gen) {
echo ' and that ' . $third_gen['role'] .
' begot a ' . $fourth_gen['role'];
}
}
}
?>
L'exemple ci-dessus va afficher :
The person begot a son who begot a daughter; The person begot a daughter who begot a son; and that son begot a son
Exemple #2 Utilisation des espaces de noms
<?php
$xml = '<example xmlns:foo="my.foo.urn">
<foo:a>Apple</foo:a>
<foo:b>Banana</foo:b>
<c>Cherry</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)