Pregunta

Tengo el siguiente en XSLT

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:variable name="cDate">
        <xsl:value-of select="current-dateTime()"/>
    </xsl:variable>
    <xsl:variable name="fcDate">
        <xsl:value-of select="format-dateTime($cDate,'[Y0001][M01][D01]')"/>
    </xsl:variable>
    <xsl:template match="/PublisherBooking">
        <dt>
            <xsl:attribute name="date"><xsl:value-of select="$fcDate"/></xsl:attribute>
        </dt>
    </xsl:template>
</xsl:stylesheet>

lo que me da la salida (dada la fecha actual es el 12 de enero de 2010):

<?xml version="1.0" encoding="UTF-8"?>
<dt date="2010112"/>

Mi problema es que necesito el formato de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
<dt date="20100112"/>

Entonces, ¿cómo puedo obtener el relleno de ceros en el mes y el día? En concreto lo que está mal con el formato de imagen '[Y0001] [M01] [D01]'.

FYI estoy usando el motor XSLT que se incluye con XMLSpy 2005.

¿Fue útil?

Solución

Bueno, se ve como un error en el motor que se incluye con mi versión de XMLSpy (2005 y un poco largo en el diente). Corrió la transformación en contra Saxon 9.2 y el resultado fue como se requiere.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top