title: Sort and get first record in XSLT
body: <p>I want to sort XML and get first record after sorting.</p>
  
  <p>I have XML as below</p>
  
  <pre><code> &lt;book&gt;
      &lt;book&gt;
          &lt;auther&gt;bell&lt;/auther&gt;
          &lt;lastModifiedDateTime&gt;2019-07-22T09:51:48.000&lt;/lastModifiedDateTime&gt;
          &lt;code&gt;999&lt;/code&gt;
          &lt;date&gt;2019-07-30T00:00:00.000&lt;/date&gt;
      &lt;/book&gt;
      &lt;book&gt;
          &lt;auther&gt;bell&lt;/auther&gt;
          &lt;lastModifiedDateTime&gt;2019-01-01T09:51:48.000&lt;/lastModifiedDateTime&gt;
          &lt;code&gt;112&lt;/code&gt;
          &lt;date&gt;2020-01-30T00:00:00.000&lt;/date&gt;
      &lt;/book&gt;
      &lt;book&gt;
          &lt;auther&gt;apple&lt;/auther&gt;
          &lt;lastModifiedDateTime&gt;2019-02-02T10:09:40.000&lt;/lastModifiedDateTime&gt;
          &lt;code&gt;112&lt;/code&gt;
          &lt;date&gt;2018-07-10T00:00:00.000&lt;/date&gt;
      &lt;/book&gt;
      &lt;book&gt;
          &lt;auther&gt;google&lt;/auther&gt;
          &lt;lastModifiedDateTime&gt;2020-01-29T09:51:48.000&lt;/lastModifiedDateTime&gt;
          &lt;code&gt;999&lt;/code&gt;
          &lt;date&gt;2019-07-30T00:00:00.000&lt;/date&gt;
      &lt;/book&gt;
  &lt;/book&gt;
  </code></pre>
  
  <p>I want to sort xml by sorting code ascending, date ascending and get last record (the greatest lastModifiedDateTime)  if there are same "Code" and "date"</p>
  
  <p>This is my expected result</p>
  
  <pre><code>   &lt;book&gt;
          &lt;book&gt;
              &lt;auther&gt;apple&lt;/auther&gt;
              &lt;lastModifiedDateTime&gt;2019-02-02T10:09:40.000&lt;/lastModifiedDateTime&gt;
              &lt;code&gt;112&lt;/code&gt;
              &lt;date&gt;2018-07-10T00:00:00.000&lt;/date&gt;
          &lt;/book&gt;
          &lt;book&gt;
              &lt;auther&gt;bell&lt;/auther&gt;
              &lt;lastModifiedDateTime&gt;2019-01-01T09:51:48.000&lt;/lastModifiedDateTime&gt;
              &lt;code&gt;112&lt;/code&gt;
              &lt;date&gt;2020-01-30T00:00:00.000&lt;/date&gt;
          &lt;/book&gt;
          &lt;book&gt;
              &lt;auther&gt;google&lt;/auther&gt;
              &lt;lastModifiedDateTime&gt;2020-01-29T09:51:48.000&lt;/lastModifiedDateTime&gt;
              &lt;code&gt;999&lt;/code&gt;
              &lt;date&gt;2019-07-30T00:00:00.000&lt;/date&gt;
          &lt;/book&gt;
      &lt;/book&gt;
  </code></pre>
  
  <p>I tried this code </p>
  
  <pre><code>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"&gt;
      &lt;xsl:output method="xml" indent="yes" /&gt;
      &lt;xsl:template match="book"&gt;
          &lt;xsl:copy&gt;
              &lt;xsl:for-each select = "book"&gt;
                  &lt;xsl:sort select='code' order="ascending"  data-type="number"/&gt;
                  &lt;xsl:sort select='date' order="ascending" /&gt;
                  &lt;xsl:sort select='lastModifiedDateTime' order="descending" /&gt;
                  &lt;xsl:if test="position()=1"&gt;
                      &lt;xsl:copy-of select="."/&gt;
                  &lt;/xsl:if&gt;
              &lt;/xsl:for-each&gt;
          &lt;/xsl:copy&gt;
      &lt;/xsl:template&gt;
  &lt;/xsl:stylesheet&gt;
  </code></pre>
  
  <p>but I can get just only one record.</p>
  
  <p>this is actual record.</p>
  
  <pre><code>&lt;book&gt;
     &lt;book&gt;
         &lt;auther&gt;apple&lt;/auther&gt;
         &lt;lastModifiedDateTime&gt;2019-02-02T10:09:40.000&lt;/lastModifiedDateTime&gt;
          &lt;code&gt;112&lt;/code&gt;
          &lt;date&gt;2018-07-10T00:00:00.000&lt;/date&gt;
      &lt;/book&gt;
  &lt;/book&gt; 
  </code></pre>