Как найти контакты с предстоящими днями рождения, скажем, в течение 10 дней, учитывая следующий XML?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, но она ломается, потому что месяц из-DATETIME возвращает целое число (5) вместо проложенной строки «0» (05). Есть ли способ построить дату в Xpath, которая будет принимать целочисленный параметр для дня, месяца, года вместо моих строк unqly hack concatenating?
/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]
Следующие обрабатывают левые отступы, но должен быть лучше: '/ контакты/контакты/хз: DATETIME (CONCAT (год из-DATETIME (по току даты(), '-', substring (concat ('00 ', month-to-dateTime (xs: dateTime (день рождения))), длина строки (месяц-от-dateTime (xs: dateTime (день рождения))) + 1, 2), '-', substring (concat ('00 ', day-to-dateTime (xs: dateTime (день рождения))), длина строки (day-to-dateTime (xs: dateTime (день рождения))) + 1, 2))) ' – GGGforce