(PHP 5 >= 5.0.1, PHP 7)
Finds children of given node
public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )
This method finds the children of an element. The result follows normal iteration rules.
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.
Returns:
Returns a SimpleXMLElement element, whether the node has children or not.
Changelog:
5.2.0
The optional parameter is_prefix
was added.
Examples:
Traversing a children() pseudo-array
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?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
Using namespaces
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?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:
count() -
Please login to continue.