SimpleXMLElement::children

(PHP 5, PHP 7)

SimpleXMLElement::childrenFinds children of given node

˵��

public SimpleXMLElement::children ([ string $ns [, bool $is_prefix = FALSE ]] ) : SimpleXMLElement

This method finds the children of an element. The result follows normal iteration rules.

Note: SimpleXML ������һ���������������ӵ������ԵĹ��򡣲���ͨ��ʹ�� var_dump() ���κοɼ�����������������鿴��

����

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 a SimpleXMLElement element, whether the node has children or not.

������־

�汾 ˵��
5.2.0 The optional parameter is_prefix was added.

����

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 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)

ע��

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.

�μ�

  • SimpleXMLElement::count() - Counts the children of an element
  • count() - ���������еĵ�Ԫ��Ŀ��������е����Ը���