我的XPath表达错误在哪里?我需要检索所有上传视频的平均评分均大于或等于3的所有用户的个人资料。
regex
我的XPath表达式是
$test = "picture.jpeg";
$ret = preg_replace("/(\.[\w]+)$/", "$1", $test);
echo $ret; //expected output: jpeg
答案 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]