Czy można przekonwertować ciągi takie jak 30042013
(30 kwietnia 2013) na format daty?Jak analizować ciąg do daty w xslt 2.0
Więc mogę go użyć później w funkcjach jak format-date
Czy można przekonwertować ciągi takie jak 30042013
(30 kwietnia 2013) na format daty?Jak analizować ciąg do daty w xslt 2.0
Więc mogę go użyć później w funkcjach jak format-date
fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?)
przekształci swoje argumenty do xs:dateTime
.
Po prostu użyj fn:substring()
i fn:concat()
, aby wyciąć odpowiednie części i połączyć je jako yyyy-mm-dd
, zanim przejdziesz do fn:dateTime
.
Tomalak Jak powiedział, można użyć substring()
i concat()
zbudować ciąg można oddać jako xs:date()
Przykład (To nie brzmi jak chcesz datetime.):
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="in" select="'30042013'"/>
<xsl:template match="/">
<xsl:variable name="date" select="xs:date(concat(
substring($in,5,4),'-',
substring($in,3,2),'-',
substring($in,1,2)))"/>
<xsl:value-of select="format-date($date,'[MNn] [D], [Y]')"/>
</xsl:template>
</xsl:stylesheet>
produkuje (przy dowolnym wejściu XML)
April 30, 2013