3

次の 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(.)))最大で 1 つの日付を取得できますが、3 つの日付を取得しようとしています。

4

2 に答える 2

4

より簡単なバージョン。

/ が同じように、ノードのシーケンスに対して for-in-return を行う必要は通常ありません。

/contacts/contact/max(.//@date/xs:dateTime(.))

制限の前に連絡先を見つけるには:

/contacts/contact[max(.//@date/xs:dateTime(.)) < '2013-05-04']
于 2013-06-03T13:06:41.910 に答える