使用下面的xpath查询对属性应用字符串函数(例如“normalize-space”)的正确语法是什么?

查询:“./ @ media”

我在其他地方看过这个例子,但如果我尝试使用php的xpath库,它什么也不返回......

有帮助吗?

解决方案

在DOMXPath对象上使用 query()总是导致节点集(包含在 DOMNodeList object),永远不会在字符串中。

您无法提取XPath函数的结果。您必须查询要处理的节点,并在PHP中处理它们。

其他提示

使用 evaluate()代替 query() 。它将返回一个键入的结果。它自PHP 5.1开始提供。

$doc = new DOMDocument();
$xpath = new DOMXpath($doc);
$q = $xpath->evaluate('"test"');
var_dump($q);

输出:

string(4) "test"
./[normalize-space(@media)

请试一试。

这个怎么样?

normalize-space(./@media)

您也可以尝试:但我不认为这是必要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top