在使用之前检查XSLT中是否存在参数

时间:2012-05-14 11:07:42

标签: xml xslt altova

如果我的参数$ test存在,我正在使用XPATH。 我正在使用ALtova Stylevision中的XPATH构建器,并认为我可以使用类似的东西 exists ( $blah)exists ( string($blah) ) 但这以

结束

" Undefined variable in expression test="exists( string( $blah) )""

问题在于有时参数会存在,有时则不存在。我不想在空白参数中进行硬编码!

在使用之前,有没有办法说“检查参数XXXX是否存在”?令人沮丧的是,我知道如何在几乎所有其他编程语言中执行此操作

参数定义:

<xsl:param name="blah"> some text </xsl:param>

从单独的文件“parameters.xslt”中读取这些参数。此文件可能存在,也可能不存在,具体取决于方案。在尝试使用它之前,我需要检查实际存在的param。

2 个答案:

答案 0 :(得分:2)

如果您已声明参数,则它存在。你想知道的是,does it have a value?

<xsl:choose>
  <xsl:when test="not($blah)">$blah wasn’t passed in</xsl:when>
  <xsl:otherwise>$blah was passed in</xsl:otherwise>
</xsl:choose>

答案 1 :(得分:2)

基本上,如果您正在编写XSLT,那么您应该知道已声明了哪些变量。您正在尝试使用某种开发模型,其中编写样式表的不同模块的人员不完全了解彼此的代码,并且XSLT不适用于该模型。

XSLT在这方面并不是唯一的:你不会在Java方法中找到任何允许方法的编写者询问“调用者提供了多少个参数?”的内容。如果提供的参数不足,则代码将无法编译。