SimpleXMLElement::children
Finds children of given node
Description
public SimpleXMLElement SimpleXMLElement::children
([ string $ns
[, bool $is_prefix
= false
]] )
Note: SimpleXML has made a rule of adding
iterative properties to most methods. They cannot be viewed using var_dump
or anything else which can examine objects.
Parameters
-
ns
-
An XML namespace.
-
is_prefix
-
If is_prefix
is TRUE
,
ns
will be regarded as a prefix. If FALSE
,
ns
will be regarded as a namespace
URL.
Return Values
Returns a SimpleXMLElement element, whether the node
has children or not.
Examples
Example #1 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 son
Example #2 Using 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)
Notes
SimpleXMLElement::children returns a node
object no matter if the current node has children or not. Use
count on the return value to see if there are any
children. As of PHP 5.3.0, SimpleXMLElement::count
may be used instead.
See Also
- SimpleXMLElement::count
- count