Php 通过SimpleXML返回XPath函数的结果

Php 通过SimpleXML返回XPath函数的结果,php,xpath,simplexml,Php,Xpath,Simplexml,PHP SimpleXML XPath似乎不允许获取XPath函数的结果: $s = new \SimpleXMLElement('<test><node>A</node><node>B</node></test>'); var_dump($s->xpath("count(node)")); 使用DOM时,返回预期值2: $dom = new \DOMDocument(); $dom->loadXML('<

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

$s = new \SimpleXMLElement('<test><node>A</node><node>B</node></test>');
var_dump($s->xpath("count(node)"));
使用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)
$dom=new\DOMDocument();
$dom->loadXML('AB');
$xpath=new\DOMXPath($dom);
变量转储($xpath->evaluate(“计数(节点)”);
浮动(2.0)

有没有一种方法可以直接使用SimpleXML执行同样的操作?

PHP的SimpleXML只适用于返回节点集的查询<代码>计数(…)返回不受支持的标量值。使用功能更强的DOMXPath或计算结果数组中的对象:

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


我担心这就是答案。无论如何,谢谢你。
var_dump(count($s->xpath("node")));