私はLibXSLTからこれを取得しています:
XSLTProcessor::transformToXml(): Invalid type
XSLTProcessor::transformToXml(): xmlXPathCompiledEval: 1 objects left on the stack.
param
文字列値またはノードセットのいずれかを持つことができるを渡しています。特定の部分文字列が含まれているかどうかをテストし、その場合はその値を別のパラメーターに割り当てようとしています。
呼び出しテンプレート:
<xsl:call-template name="img">
<xsl:with-param name="upload" select="'url.com/image.jpg'"/>
<xsl:with-param name="w" select="200"/>
<xsl:with-param name="h" select="200"/>
</xsl:call-template>
呼び出されたテンプレート:
<xsl:template name="img" match="*" mode="w">
<xsl:param name="upload" select="."/>
<xsl:param name="JITexternal">
<xsl:choose>
<xsl:when test="
not($upload/meta) and (contains($upload, '.jpg')
or
contains($upload, '.png'))
">
<xsl:value-of select="$upload"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
</xsl:template>
何がLibXSLTをトリップさせているのかはわかりませんが、これらのテストを実行し、値が文字列である場合、上記の型エラーがスローされるという事実だと思います。
しかし、最も重要なのは、パラメータの値のタイプをテストする良い方法はありますか?
更新: GitHubの完全な XSL スクリプト