2012-03-16 17 views
7

Konieczność przekonwertowania wartości tekstowej "2012-03-19" na typ daty, a następnie wyodrębnienia komponentu roku.Jak przekonwertować tekst na datę, a następnie uzyskać wartość roczną?

<xsl:variable name="dateValue" select="2012-03-19"/> 
<xsl:variable name="year" select="year-from-date(date($dateValue))"/> 

używam Saxon 2.0, ale skarży date funkcja nie istnieje; Rozejrzałem się po dokumentacji Saxona i nie mogłem znaleźć funkcji, więc jest to wyraźnie problem, ale nie mogę znaleźć odpowiedniego zamiennika.

Odpowiedz

8

Nie sądzę, że date() powinna być funkcją, chcesz typ danych xs:date().

Dodaj przestrzeń nazw xs, a następnie prefiks xs:date().

Poniższy arkusz stylów, za pomocą dowolnej dobrze uformowane XML wejściowego, będzie produkować 2012:

<xsl:stylesheet version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="/"> 
    <xsl:variable name="dateValue" select="'2012-03-19'"/> 
    <xsl:variable name="year" select="year-from-date(xs:date($dateValue))"/> 
    <xsl:value-of select="$year"/> 
    </xsl:template> 

</xsl:stylesheet> 

Należy pamiętać, że trzeba także podać swój select w „DATEVALUE” xsl:variable.

+0

Dzięki, tęskniłem za tym ... – raffian

Powiązane problemy