给定以下 XML,我如何找到即将到来的生日的联系人,比如 10 天内?
<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,但它崩溃了,因为 month-from-dateTime 返回一个整数 (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]