Код Xslt, чтобы пройти минуты - PullRequest
2 голосов
/ 29 августа 2011

Я получаю XML от SQL.В XML есть узел, который содержит информацию о дате и времени.XML трансформируется с использованием xslt.Мне нужно вычислить минуты, прошедшие в xslt.

Например, в xml у меня есть следующий узел:

2011-08-28T22: 11: 52.383-07: 00

Мне нужно взять текущее время в качестве ссылки и указать, сколько минут прошло с даты, которая есть в узле xml.Ценю твою помощь.

Спасибо

1 Ответ

2 голосов
/ 30 августа 2011

Это преобразование :

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
   Current time: <xsl:sequence select="current-dateTime()"/>

   Elapsed minutes since: <xsl:sequence select="string(/)"/>:

   <xsl:sequence select=
   "(current-dateTime() - xs:dateTime(/) )
    div
     xs:dayTimeDuration('PT1M')
     "/>

 </xsl:template>
</xsl:stylesheet>

при применении к этому документу XML :

<t>2011-08-28T22:11:52.383-07:00</t>

дает желаемый, правильный результат :

   Current time: 2011-08-29T21:28:27.153-07:00

   Elapsed minutes since: 2011-08-28T22:11:52.383-07:00:

   1396.5795

Пояснение : истекшие минуты рассчитываются как результат деления двух длительностей:

  1. Разница во времени между текущей и указанной датой-временем и
  2. Значение xs:dayTimeDuration ровно одна минута.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...