Разделите элемент datetime в XML на дату и время, используя XSL - PullRequest
2 голосов
/ 05 января 2012

У меня есть строка даты в моем XML-файле как

<DateTime>20120105T103030-0600</DateTime>

Я хочу изменить это с помощью XSLT на

<date>20120105</date>
<time>103030</time>

Может ли кто-нибудь помочь мне выделить элемент DateTime длядата и время с использованием XSL.Спасибо

Ответы [ 2 ]

4 голосов
/ 05 января 2012

Некоторое время назад у меня была похожая проблема:

  <xsl:template name="FormatDate">
    <xsl:param name="DateTime" />
    <date>
      <xsl:value-of select="substring($DateTime,1,8)" />
    </date>
    <time>
      <xsl:value-of select="substring($DateTime,10,6)" />
    </time>
  </xsl:template>

Использование:

<xsl:call-template name="FormatDate">
  <xsl:with-param name="DateTime" select="LastWriteTime" />
</xsl:call-template>

Обратите внимание, что мне не нужен часовой пояс!

1 голос
/ 05 января 2012

Следующая таблица стилей:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="DateTime">
        <date><xsl:value-of select="substring-before(., 'T')"/></date>
        <time><xsl:value-of 
                 select="substring-before(substring-after(., 'T'), '-')"/></time>
    </xsl:template>
</xsl:stylesheet>

Применительно к этому примеру ввода:

<root>
    <DateTime>20120105T103030-0600</DateTime>
</root>

Производит:

<date>20120105</date>
<time>103030</time>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...