J'ai ce simple fichier XMLXSL comment trouver le jour julien pour une date précise?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="faan.xsl"?>
<datum>2016-05-17</datum>
Je veux utiliser XSL (XSL 2.0 et extensions n'est pas une option) pour calculer jour julien pour cette date (réponse correcte est 2457526, cette pratique est juste!) et est venu avec cette feuille de style qui semble être copié-collé dans de nombreux endroits. Mais, quand un ouvrir le fichier dans l'Explorateur, il me donne juste la date 2016-05-17, et quand je l'ouvre dans Excel, il dit que je ne peux pas utiliser xsl: with-param à cet endroit. J'ai évidemment manqué quelque chose de très simple, mais quoi?
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="datum">
<xsl:sort select="datum"/>
<dateline>
<datum><xsl:value-of select="datum"/></datum>
</dateline>
</xsl:for-each>
</xsl:template>
<xsl:template match="datum">
<xsl:call-template name="calculate-julian-day" />
<xsl:with-param name="year" select="substring(datum,1,4)" />
<xsl:with-param name="month" select="substring(datum,6,2)" />
<xsl:with-param name="day" select="substring(datum,9,2)" />
</xsl:template>
<xsl:template name="calculate-julian-day">
<xsl:param name="year"/>
<xsl:param name="month"/>
<xsl:param name="day"/>
<xsl:variable name="a" select="floor((14 - $month) div 12)"/>
<xsl:variable name="y" select="$year + 4800 - $a"/>
<xsl:variable name="m" select="$month + 12 * $a - 3"/>
<xsl:value-of select="$day + floor((153 * $m + 2) div 5) + $y * 365 + floor($y div 4) - floor ($y div 100) + floor($y div 400) - 32045"/>
</xsl:template>
</xsl:stylesheet>
Vous avez des problèmes de syntaxe de base: vous devez placer 'xsl param' ** inside ** 'xsl: call-template'. Et le modèle correspondant 'datum' n'est jamais appliqué. –