我有這個簡單的XML文件XSL如何找到特定日期的Julian日?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="faan.xsl"?>
<datum>2016-05-17</datum>
我想使用XSL(XSL 2.0和擴展是不是一種選擇)來計算儒略日這個日期(正確答案是2457526,這只是練習!)並提出了這個似乎在許多地方複製粘貼的樣式表。 但是,當在資源管理器中打開文件時,它僅給出日期2016-05-17,當我在Excel中打開它時,它說我不能在此處使用xsl:with-param。 我明顯錯過了很簡單的事情,但是什麼?
<?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>
你有基本的語法問題:你需要把'XSL:與 - **'xsl:call-template'裏面的參數**。而且'datum'的模板永遠不會被應用。 –