xslt, сортировка по дате - неправильный формат даты, первый день (ddmmyyyy) - PullRequest
1 голос
/ 14 января 2010

Я хотел бы отсортировать список из 1500 файлов в XSLT 1. Список похож на:

01052003.xls -> (translate to: 1th of May 2003)
25062004.xls -> (translate to: 25th of June 2004)
31032001.xls -> (translate to: 31th of Marts 2001)

Я могу сделать сортировку по имени, но так как они называются ddmmyyyy, сортировка будет неправильной.

Можно ли как-то отсортировать файлы по этой странной дате?

В качестве альтернативы мне нужно будет найти инструмент, который может переименовать множество файлов в папке на основе регулярного выражения ...

Br. Андерс

Ответы [ 2 ]

4 голосов
/ 14 января 2010

Используя инструкцию xsl: sort, вы можете комбинировать несколько ключей сортировки на основе подстрок. Хороший пример связан ниже:

http://www.xml.com/pub/a/2002/07/03/transform.html

... достаточно легко иметь три вида ключи в зависимости от года, месяца и дня подстроки строки даты:

<xsl:template match="employees">
  <xsl:apply-templates>
    <xsl:sort select="substring(@hireDate,7,4)"/><!-- year  -->
    <xsl:sort select="substring(@hireDate,1,2)"/><!-- month -->
    <xsl:sort select="substring(@hireDate,3,2)"/><!-- day   -->
  </xsl:apply-templates>
</xsl:template>
1 голос
/ 14 января 2010

А как же поменять это?

<xsl:for-each select="dates/date">
    <xsl:sort select="substring(., 5, 4)" />
    <xsl:sort select="substring(., 3, 2)" />
    <xsl:sort select="substring(., 1, 2)" />
    <xsl:value-of select="." /><br />
</xsl:for-each>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...