2012-03-16 11 views
7

Necesita convertir un valor de texto `2012-03-19 'en un tipo de fecha, luego extraiga el componente del año.¿Cómo convertir el texto a la fecha, luego obtener el valor del año?

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

estoy usando Saxon 2.0, pero protestando date función no existe; Miré alrededor de la documentación de Saxon y no pude encontrar la función, así que ese es claramente el problema, pero no puedo encontrar un reemplazo adecuado.

Respuesta

8

No creo que date() sea una función, desea el tipo de datos xs:date().

Agregue el espacio de nombre xs y luego el prefijo xs:date().

La siguiente hoja de estilo, utilizando cualquier entrada XML bien formado, producirá 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> 

Tenga en cuenta que también hay que citar su select en su "DateValue" xsl:variable.

+0

Gracias, me perdí de eso ... – raffian

Cuestiones relacionadas