(PHP 5 >= 5.0.1)
SimpleXMLElement::children — Cherche les fils d'un noeud donné
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.
Un espace de noms XML.
Si is_prefix vaut TRUE, ns sera considéré comme un préfixe. S'il vaut FALSE, ns sera considéré comme une URL vers un espace de noms.
Retourne un élément SimpleXMLElement que le noeud possède un fils ou pas.
Version | Description |
---|---|
5.2.0 | Le paramètre optionnel is_prefix a été ajouté. |
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)
SimpleXMLElement::children() retourne un noeud, peu importe si le noeud courant a un fils ou non. Utilisez la fonction count() sur le résultat pour vérifier si des fils existent. SimpleXMLElement::count() peut aussi être utilisée à cet effet à partir de PHP 5.3.0.