2012-03-16 6 views
7

È necessario convertire un valore di testo '2012-03-19' in un tipo di data, quindi estrarre il componente year.Come convertire il testo fino ad oggi, quindi ottenere il valore dell'anno?

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

sto usando sassone 2.0, ma si tratta di lamentarsi date funzione non esiste; Ho guardato intorno alla documentazione di Saxon e non sono riuscito a trovare la funzione, quindi è chiaramente il problema, ma non riesco a trovare un sostituto adatto.

risposta

8

Non credo che date() debba essere una funzione, si desidera il tipo di dati xs:date().

Aggiungere lo spazio dei nomi xs e quindi prefisso xs:date().

Il seguente foglio di stile, utilizzando qualsiasi input XML ben formato, produrrà 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> 

noti che si hanno anche per citare il select nel vostro "DATA.VALORE" xsl:variable.

+0

Grazie, mi sono perso ... – raffian