0
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str = "http://exslt.org/string" extension-element-prefixes="str">
<xsl:template name="padding">
<xsl:param name="padChar" select="' '"/>
<xsl:param name="padVar"/>
<xsl:param name="length"/>
<xsl:choose>
<xsl:when test="$length > string-length($padVar) ">
<xsl:call-template name="padding">
<xsl:with-param name="padChar" select="$padChar"/>
<xsl:with-param name="padVar" select="concat($padVar,$padChar)"/>
<xsl:with-param name="length" select="$length"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring($padVar,1,$length)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:param name="member" />
<xsl:template match = "/">
<xsl:for-each select="record/transaction">
<transaction>
<!-- <xsl:template match="member">
<xsl:call-template name="padding"/>
</xsl:template>-->
<xsl:template match = "date">
<xsl:call-template name="padding">
<xsl:with-param name = "padVar">20</with-param>
<xsl:with-param name = "length">50</with-param>
<!-- <xsl:value-of select = "str:align(date,str:padding(100))"/> -->
</xsl:call-template>
</xsl:template>
<type>
<xsl:value-of select = "type"/>
</type>
<amount>
<xsl:value-of select = "amount"/>
</amount>
<remark>
<xsl:value-of select = "remark"/>
</remark>
</transaction>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我無法檢測到上述代碼中的錯誤。任何人都可以幫忙嗎?錯誤在傳遞參數的XSLT代碼?
我認爲錯誤是在我傳遞參數名稱的時候,當我調用模板時。另外,有人可以分享一個鏈接,我可以在哪裏瞭解XSLT參數?
什麼是exactely症狀?提供一個示例輸入XML。 – potame 2015-03-13 08:12:43
錯誤可能來自''。它必須位於樣式表中的或最上面的位置(在所有的標籤之前)。 –
potame
2015-03-13 08:14:47
這個錯誤幾乎肯定是因爲你在另一個模板匹配('')中嵌入了'「。這是不允許的,因爲模板必須是樣式表元素的直接子對象。如果你想知道如何改變你的XSLT來使它工作,我們真的需要看到你的輸入XML和你的期望輸出,並且讓你準確地解釋你想要達到的目標。謝謝! –
2015-03-13 09:02:41