在 PHP 中,是否有现成的方法可以通过节点名(递归地)获取一个或多个子元素,还是您需要自己编写函数?例如,这是我的 XML:
我正在寻找一种返回如下结果的方法: Array( [0] => 'Jan', [1] => 'Kees' )
可以通过调用类似以下代码实现:
<parent>
<child>
<grandchild>Jan</grandchild>
<grandchild>Kees</grandchild>
</child>
</parent>
我正在寻找一种返回如下结果的方法: Array( [0] => 'Jan', [1] => 'Kees' )
可以通过调用类似以下代码实现:
$grandchildren = $xml->children('grandchild');
根据文档,上述内容确实存在,但仅适用于命名空间。
e: 下面接受的答案有效。这是我运行测试的内容。
$xml = '
<parent>
<child>
<grandchild>Jan</grandchild>
<grandchild>Kees</grandchild>
</child>
</parent>';
$L_o_xml = new SimpleXMLElement($xml);
$L_o_child = $L_o_xml->xpath('//grandchild');
foreach( $L_o_child as $hi ){
print "\n".(string)$hi;
}
简单的打印:
Jan
Kees
string
以获取它们的值。 - JLRishe$xml->xpath('//grandchild/text()')
。 - JJoao