當我運行下面的代碼...如何在XSLT中聲明變量?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="images">
<ul id="tiles">
<xsl:for-each select="entry">
<li>
<xsl:if test="position() mod 4 = 0">
<xsl:attribute name="class">fourth</xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="datei/meta/@width > datei/meta/@height">
<xsl:variable name="width">600</xsl:variable>
<xsl:variable name="height">450</xsl:variable>
</xsl:when>
<xsl:when test="datei/meta/@width < datei/meta/@height">
<xsl:variable name="width">600</xsl:variable>
<xsl:variable name="height">800</xsl:variable>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="width">600</xsl:variable>
<xsl:variable name="height">600</xsl:variable>
</xsl:otherwise>
</xsl:choose>
<a href="{$root}/image/2/{$width}/{$height}/5{datei/@path}/{datei/filename}" class="fresco" data-fresco-caption="{titel}" data-fresco-group="event">
<img src="{$root}/image/2/320/320/5{datei/@path}/{datei/filename}"/>
</a>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
我得到一個錯誤:
XSLTProcessor::transformToXml():
Variable 'width' has not been declared.
xmlXPathCompiledEval: evaluation failed
Variable 'height' has not been declared.
xmlXPathCompiledEval: evaluation failed
這怎麼可能?
我是否以錯誤的方式聲明變量width
和height
?
感謝您的任何幫助。
我剛剛意識到這是解決我的問題的更好方法。 – Tintin81 2014-12-07 12:07:57