WP ALL IMPORT XPath筛选:search_price低于rrp_price的product节点
解决WP ALL IMPORT中用XPath筛选低价商品节点的问题
没问题,我来帮你搞定这个XPath筛选需求!要选出search_price值低于rrp_price的product节点,你可以用带条件谓词的XPath表达式,具体写法如下:
/product[number(normalize-space(search_price)) < number(normalize-space(rrp_price))]
为什么要这么写?
normalize-space():你的示例节点里价格文本前后有空格(比如<rrp_price> 192.90 </rrp_price>),这个函数会去掉文本两端的空格,同时把中间的多个空格换成单个,确保后续转数字时不会出错。number():把处理后的文本转换成数值类型,这样才能进行有效的大小比较(直接用文本比较会按字符串排序,结果完全不对)。- 谓词
[]:把比较条件放在product节点的谓词里,就能只返回满足search_price < rrp_price的节点。
举个例子,你提供的这个product节点:
<product> <rrp_price> 192.90 </rrp_price> <search_price> 172.90 </search_price> </product>
会被这个XPath表达式匹配到,因为172.90确实小于192.90。
小提示
要确保所有rrp_price和search_price节点里的内容都是有效的数字格式(比如没有非数字字符),不然number()函数会返回NaN,导致比较结果不符合预期哦。
内容的提问来源于stack exchange,提问作者Sebix
相关产品推荐
相关产品推荐

