Php/docs/simplexmlelement.children
SimpleXMLElement::children
(PHP 5, PHP 7)
SimpleXMLElement::children — Finds 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
istrue
,ns
will be regarded as a prefix. Iffalse
,ns
will be regarded as a namespace URL.
范例
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.