SimpleXMLElement::children
(PHP 5, PHP 7, PHP 8)
Finds children of given node
Description
This method finds the children of an element. The result follows normal iteration rules.
Iteration
Parameters
namespaceOrPrefixAn XML namespace.
isPrefixIf
isPrefixis true,namespaceOrPrefixwill be regarded as a prefix. If false,namespaceOrPrefixwill be regarded as a namespace URL.
Return Values
Returns a SimpleXMLElement element, whether the node has children or not, unless the node represents an attribute, in which case null is returned.
Examples
Traversing a children() pseudo-array
<?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'];
}
}
}
?>The above example will output:
The person begot a son who begot a daughter; The person begot a daughter who begot a son; and that son begot a sonUsing namespaces
<?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)See Also
SimpleXMLElement::countcount()