Как преобразовать значение по умолчанию mysql modtimes во время даты UTC с помощью xslt

Я должен преобразовать значение по умолчанию mysql modtimes в форматированный datetimes UTC, использующий xslt.

У меня есть xml документ, который содержит даты, которые произошли как mysql modtimes в формате: 30.06.2010 15:20:43.0

Они находятся теперь в xml документе в "метке даты" элемента 16.03.2010 13:52:56.0

Чтобы быть опубликованными через канал oai-pmh, они должны быть преобразованы в формат UTC: 2010-06-30T15:20:43Z

ISO 8601 даты UTC определяется здесь: http://www.w3.org/TR/NOTE-datetime

У меня нет доступа к исходной mysql базе данных, только дампу xml.

1
задан Dimitre Novatchev 18 July 2010 в 01:48
поделиться

1 ответ

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

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="text()">
  <xsl:value-of select=
   "concat(
           translate(substring-before(.,'.'),
                     ' ',
                     'T'
                     ),
            'Z'
            )
   "/>
 </xsl:template>
</xsl:stylesheet>

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

<oai:datestamp xmlns:oai="some:ns">2010-03-16 13:52:56.0</oai:datestamp>

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

<oai:datestamp xmlns:oai="some:ns">2010-03-16T13:52:56Z</oai:datestamp>

Обратите внимание : Значение преобразуется в желаемый формат с помощью одного выражения XPath, поэтому я добавил тег xpath .

2
ответ дан 2 September 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: