鉴于以下XML,什么Xpath 2.0查询将获得每个联系人的最大日期?我的目标是找到30天内未被触及的联系人。
<contacts>
<contact>
<name>james</name>
<touch method='email' date='2002-02-04'>a</touch>
<touch method='meeting' date='2010-02-04'>b</touch>
</contact>
<contact>
<name>bob</name>
<touch method='phone' date='2001-02-04'>y</touch>
<touch method='email' date='2009-02-04'>d</touch>
</contact>
<contact>
<name>cindy</name>
<touch method='email' date='2012-02-04'>v</touch>
<touch method='phone' date='2012-02-04'>h</touch>
</contact>
<contact>
<name>john</name>
</contact>
</contacts>
max((//@date/xs:dateTime(.)))
会给我一个最长的约会日期,但我正在尝试获得三个约会。
答案 0 :(得分:4)
更简单的版本。
对于节点序列,您通常不需要返回,因为/是相同的。
/contacts/contact/max(.//@date/xs:dateTime(.))
并在限制之前找到联系人:
/contacts/contact[max(.//@date/xs:dateTime(.)) < '2013-05-04']
答案 1 :(得分:1)
使用for
,因为您希望获得每个联系人的最大值
for $x in /contacts/contact return max($x//@date/xs:dateTime(.))