2013-09-05 247 views
0

看來,PHP的SimpleXML的XPath不允許獲得的XPath函數的結果:使用DOM回報儘管返回結果

array(0) { 
} 

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

返回一個空數組期望值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

PHP的SimpleXML僅適用於返回節點集的查詢。 count(...)返回不支持的標量值。使用DOMXPath這是更爲能夠或計數結果數組中的對象:

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

INT(2)

+0

我已經擔心,這是問題的答案。不管怎麼說,還是要謝謝你。 – Marko