J'utilise date:format-date template EXSLT file J'utilise XSLT 1.0 et MSXML3.0 comme processeur.Date EXSLT: format-date modèle sans document() XSLT 1.0
Ma date: modèle format Date de la déclaration du fichier est EXSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:str="http://exslt.org/strings"
extension-element-prefixes="msxsl date str">
...
</xsl:stylesheet>
Je ne peux pas utiliser la fonction document() en raison des restrictions 3ème partie. J'ai donc changé les mois et les jours (de même) de XML extrait:
<date:months>
<date:month length="31" abbr="Jan">January</date:month>
<date:month length="28" abbr="Feb">February</date:month>
<date:month length="31" abbr="Mar">March</date:month>
<date:month length="30" abbr="Apr">April</date:month>
<date:month length="31" abbr="May">May</date:month>
<date:month length="30" abbr="Jun">June</date:month>
<date:month length="31" abbr="Jul">July</date:month>
<date:month length="31" abbr="Aug">August</date:month>
<date:month length="30" abbr="Sep">September</date:month>
<date:month length="31" abbr="Oct">October</date:month>
<date:month length="30" abbr="Nov">November</date:month>
<date:month length="31" abbr="Dec">December</date:month>
</date:months>
à la variable:
<xsl:variable name="months">
<month length="31" abbr="Jan">January</month>
<month length="28" abbr="Feb">February</month>
<month length="31" abbr="Mar">March</month>
<month length="30" abbr="Apr">April</month>
<month length="31" abbr="May">May</month>
<month length="30" abbr="Jun">June</month>
<month length="31" abbr="Jul">July</month>
<month length="31" abbr="Aug">August</month>
<month length="30" abbr="Sep">September</month>
<month length="31" abbr="Oct">October</month>
<month length="30" abbr="Nov">November</month>
<month length="31" abbr="Dec">December</month>
</xsl:variable>
Et en conséquence, j'ai changé le code qui utilise initialement le document() fonction à partir de:
[à partir du bit de traitement mensuel de la feuille de style EXSLT]
<xsl:variable name="month-node" select="document('')/*/date:months/date:month[number($month)]" />
pour utiliser la fonction set nœud MSXML3.0:
<xsl:variable name="month-node" select="msxsl:node-set($months)/month[number($month)]" />
Je suppose que cela fonctionnerait.
Selon les instructions EXLT "La chaîne de modèle de format est interprétée comme décrit pour le JDK 1.1 SimpleDateFormat class." [J'ai utilisé la version actuelle].
Je spécifie le mois en conformité avec SimpleDateFormat class comme 'jj MMMMM aaaa' afin que le mois soit le nom complet du mois, par exemple janvier. Mais cela ne fonctionne pas :(J'ai regardé dans la feuille de style EXSLT et il a la logique de faire cela.Il est également logique d'afficher le nom de la semaine pour un jour en utilisant le modèle 'E', ce qui ne fonctionne pas pour moi. peut-être changer d'utiliser le document() pour les variables rompit.
apprécierions vraiment aucune aide.
Un grand merci!
EXEMPLES
<xsl:call-template name="date:format-date">
<xsl:with-param name="date-time" select="'2010-07-01'"/>
<xsl:with-param name="pattern" select="'dd MMMMM yyyy'" />
</xsl:call-template>
Comme je comprends SimpleDateFormat class docs cela devrait donner lieu à 01 Juillet 2010 et ce que je reçois est
<xsl:call-template name="date:format-date">
<xsl:with-param name="date-time" select="'2010-07-01'"/>
<xsl:with-param name="pattern" select="'EEE, dd MMMMM yyyy'" />
</xsl:call-template>
Cela devrait entraîner Lun 01 Juillet 2010 et ce que je reçois est , 01 07 2010
@Welbog: Je pense que oui. J'ai édité la structure de $ mois pour que je puisse l'utiliser sans document(). J'obtiens des résultats, mais pas exactement formalisés correctement. J'ai ajouté des exemples dans la question. – DashaLuna