SimpleXMLElement::children

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::childrenCherche les fils d'un nœud donné

Description

publicSimpleXMLElement::children(?string$namespaceOrPrefix = null, bool$isPrefix = false): ?SimpleXMLElement

Cette 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.

Liste de paramètres

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.

Valeurs de retour

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é.

Exemples

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)

Voir aussi

To Top