使用XPath获取随机元素

时间:2014-03-04 16:06:13

标签: xml xpath random for-xml-path

我需要获取特定结果集的随机元素。我有一个工作的XPath表达式,在另一个表达式中需要相同的东西。这就是我现在所拥有的:

工作人员:

ad/item[[eval:('Math.floor(Math.random()*7)+1')]]

这就是我需要的。它还需要随机,但建议使用过滤器:

query/results/json/feed/entry[contains(gsx_type/_t,'recommended')]

我知道,如果我只想要一个号码,我可以这样说:

query/results/json/feed/entry[contains(gsx_type/_t,'recommended')][3]

query/results/json/feed/entry[(contains(gsx_type/_t,'recommended')) AND (item = 3) ]

但这不是我需要的。我有12张照片是推荐的,所以如果有人知道写些什么来让这项工作真的很棒!

1 个答案:

答案 0 :(得分:0)

如果我理解你想要实现的目标,你可以简单地将两者结合起来:

query/results/json/feed/entry[contains(gsx_type/_t,'recommended')][eval:('Math.floor(Math.random()*7)+1')]

但是,这个eval:()函数对我来说非常奇怪,您也可以使用处理器提供的随机模块或以不同方式调用函数。另外,如果您有12张图片,则可能需要将7更改为12