0

似乎 PHP SimpleXML XPath 不允许获取 XPath 函数的结果:

$s = new \SimpleXMLElement('<test><node>A</node><node>B</node></test>');
var_dump($s->xpath("count(node)"));

返回一个空数组:

array(0) {
}

虽然 Using DOM 返回预期值 2:

$dom = new \DOMDocument();
$dom->loadXML('<test><node>A</node><node>B</node></test>');
$xpath = new \DOMXPath($dom);
var_dump($xpath->evaluate("count(node)"));


float(2.0)

有没有办法直接用 SimpleXML 做同样的事情?

4

1 回答 1

0

PHP 的 SimpleXML 仅适用于返回节点集的查询。count(...)返回不支持的标量值。使用功能更强大的 DOMXPath 或计算结果数组中的对象:

var_dump(count($s->xpath("node")));

整数(2)

于 2013-09-05T18:25:44.870 回答