Php/docs/simplexmlelement.children

来自菜鸟教程
跳转至:导航、​搜索

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.


范例

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.


参见