似乎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做同样的事情?
答案 0 :(得分:0)
PHP的SimpleXML仅适用于返回节点集的查询。 count(...)
返回不支持的标量值。使用功能更强大的DOMXPath或计算结果数组中的对象:
var_dump(count($s->xpath("node")));
INT(2)