0

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 で直接同じことを行う方法はありますか?

4

1 に答える 1

0

PHP の SimpleXML は、ノードセットを返すクエリでのみ機能します。count(...)サポートされていないスカラー値を返します。はるかに機能的な DOMXPath を使用するか、結果配列内のオブジェクトをカウントします。

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

int(2)

于 2013-09-05T18:25:44.870 に答える