XPath 1.0中的时间字符串比较 [英] Time string comparison in XPath 1.0

查看:197
本文介绍了XPath 1.0中的时间字符串比较的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在XPath1.0中得到了以下比较:

I've got this comparison in XPath1.0:

number(substring(translate(translate(translate(@ pub-date,'-',''),':',''),'',''),5,4)+ substring(translate( translation(translate(@ pub-date,'-',''),':',''),'',''),2,3)+ substring(translate(translate(translate(@ pub-date, '-',''),':',''),'',''),0,2)+ substring(translate(translate(translate(@ pub-date,'-',''),' :',''),'',''),9,6))>数字(substring(translate(translate(translate(@ pub-date2,'-',''),':','') ,'',''),5,4)+ substring(translate(translate(translate(@ pub-date2,'-',''),':',''),'',''),2 ,3)+ substring(translate(translate(translate(@ pub-date2,'-',''),':',''),'',''),0,2)+ substring(translate(translate(translate (translate(@ pub-date2,'-',''),':',''),'',''),9,6))

number(substring(translate(translate(translate(@pub-date,'-',''),':',''),' ','') ,5,4)+substring(translate(translate(translate(@pub-date,'-',''),':',''),' ',''),2,3)+substring(translate(translate(translate(@pub-date,'-',''),':',''),' ',''),0,2)+substring(translate(translate(translate(@pub-date,'-',''),':',''),' ',''),9,6)) > number(substring(translate(translate(translate(@pub-date2,'-',''),':',''),' ','') ,5,4)+substring(translate(translate(translate(@pub-date2,'-',''),':',''),' ',''),2,3)+substring(translate(translate(translate(@pub-date2,'-',''),':',''),' ',''),0,2)+substring(translate(translate(translate(@pub-date2,'-',''),':',''),' ',''),9,6))

这将比较@pub-date@pub-date2.这些字符串具有以下格式:dd-mm-yyyy hh:mm:ss.

This compares @pub-date and @pub-date2. These Strings have this format: dd-mm-yyyy hh:mm:ss.

问题是:是@pub-date = "30-07-2014 23:59:59"并且@pub-date2 = "30-08-2014 00:00:00"@pub-date被认为大于@pub-date2.这个XPath怎么了?

The problem is: is @pub-date = "30-07-2014 23:59:59" and @pub-date2 = "30-08-2014 00:00:00", @pub-date is considered bigger than @pub-date2. What's wrong with this XPath?

推荐答案

首先,表达式

translate(translate(translate(@pub-date,'-',''),':',''),' ','') 

可以写得更简洁

translate(@pub-date,'-: ','')

第二,更重要的是,substring()的参数是错误的.如果要从30072014中拉出Y,M和D,则需要(5,4),(3,2)和(1,2),而此表达式可抓取(5,4),(2,3 )和(0,2).

Secondly, and more importantly, the arguments to substring() are wrong. If you want to pull out the Y, M, and D from 30072014 then you want (5,4), (3,2), and (1,2) whereas this expression grabs (5,4), (2,3), and (0,2).

这篇关于XPath 1.0中的时间字符串比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆