带有谓词和条件的XPath表达式

时间:2016-06-10 12:05:55

标签: xml xpath

我的XPath表达错误在哪里?我需要检索所有上传视频的平均评分均大于或等于3的所有用户的个人资料。

regex

我的XPath表达式是

$test = "picture.jpeg";

$ret = preg_replace("/(\.[\w]+)$/", "$1", $test);
echo $ret;    //expected output: jpeg

1 个答案:

答案 0 :(得分:2)

XPath 1.0中没有avg()函数(我怀疑你在这里使用)。

试试这个:

//video[sum(ratings/rating/@value) div count(ratings/rating) >= 3]/uploader

或者,稍微短一些的变体:

//video[ratings[sum(rating/@value) div count(rating) >= 3]]/uploader

从那里到<user>个对象的列表是微不足道的:

//user[email = //video[ratings[sum(rating/@value) div count(rating) >= 3]]/uploader]

或者,当avg()因为您使用XPath 2.0+而作为函数可用时,更短的时间:

//user[email = //video[avg(ratings/rating/@value) >= 3]/uploader]