0
鉴于以下XML,我如何才能在即将到来的生日中找到联系人,例如10天内说的?XPath - 查找即将到来的生日
<contacts>
<contact>
<name>bob</name>
<birthday>1978-05-06</birthday>
</contact>
<contact>
<name>mary</name>
<birthday>1955-06-06</birthday>
</contact>
<contact>
<name>john</name>
<birthday>1998-05-06</birthday>
</contact>
</contacts>
我有以下XPath,但它打破了,因为一个月从-日期时间返回一个整数(5),而不是“0”补齐串(05)。有没有办法在Xpath中建立一个日期,它将接受日,月,年的整数参数,而不是我的毫不费力的hack连接字符串?
/contacts/contact[days-from-duration(xs:dateTime(concat(year-from-dateTime(current-date()),'-',month-from-dateTime(xs:dateTime(birthday)),'-',day-from-dateTime(xs:dateTime(birthday)))) - current-date()) < 10]
下处理左填充,但必须有一个更好的办法:'/联系人/联系/ XS:DATETIME(CONCAT(年 - 从 - 日期时间(目前最新()),' - ',substring(concat('00',month-from-dateTime(xs:dateTime(birthday))),string-length(month-from-dateTime(xs:dateTime(birthday)))+ 1),' - ',substring(concat('00',day-from-dateTime(xs:dateTime(birthday))),string-length(day-from-dateTime(xs:dateTime(birthday))) + 1,2)))' – GGGforce