次の 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 が「0」で埋められた文字列 (05) ではなく整数 (5) を返すため、うまくいきません。文字列を連結する醜いハックの代わりに、日、月、年の整数パラメーターを受け入れる Xpath で日付を作成する方法はありますか?
/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]