【问题标题】:xpath filter on calculated value计算值的 xpath 过滤器
【发布时间】:2015-05-28 08:50:16
【问题描述】:

我正在使用 Xpath 过滤每天上传到我网站的产品提要。

Feed 是一个包含产品列表的简单 CSV。要仅加载有折扣的产品,我使用以下 Xpath 表达式:

/node[price_from != price]

但是,我真正需要做的是过滤掉折扣超过 30% 的产品。根据我的发现,Xpath 似乎可以处理计算,但我无法找到基于计算值制作过滤器的示例。

基本上我正在寻找一个可以做到这一点的表达式(但这不起作用):

/node[(price / price_from) < 0,7]

有人知道上述类型的表达是否可能吗?我只能使用 Xpath 进行过滤,并且无法控制提要,因此我无法在此之前添加包含折扣百分比的列。

【问题讨论】:

    标签: xml xpath calculated-columns


    【解决方案1】:

    xpath 中的除法运算符是div,而不是/(请记住/ 已经用于xpath 中的路径分隔符)。所以你应该能够做到以下几点:

    /node[(price div price_from) < 0.7]
    

    来自W3C xpath 1.0 规范:

    div 运算符根据 IEEE 754 执行浮点除法。

    mod 运算符返回截断除法的余数。

    【讨论】:

    • 这是更有用的答案,应该被接受。
    【解决方案2】:

    您可以找到操作员的文档here

    另外,你需要确保属性或节点值是数字(你可以使用number()函数进行转换)

    我相信这样的事情会奏效

    /node[(price div price_from) < 0,7]
    

    【讨论】:

    • 这行得通,谢谢。我不必强制转换为数字,但由于数字符号不同,我还必须将 0,7 更改为 0.7。
    猜你喜欢
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多