通过SimpleXML返回XPath函数的结果

时间:2013-09-05 12:17:28

标签: php xpath simplexml

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

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

返回一个空数组:

array(0) {
}

使用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做同样的事情?

1 个答案:

答案 0 :(得分:0)

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

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

INT(2)