【问题标题】:Get random element using XPath使用 XPath 获取随机元素
【发布时间】:2014-03-04 16:06:13
【问题描述】:

我需要获取特定结果集的随机元素。我有一个有效的 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 张图片,所以如果有人知道要写什么来完成这项工作,那可能会非常棒!

【问题讨论】:

    标签: xml xpath random for-xml-path


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢您,尽管您的回答确实证实了这一点。
    猜你喜欢
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多