1

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

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

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

有没有办法在我使用它之前说“检查参数 XXXX 是否存在”?这很令人沮丧,因为我知道如何在几乎所有其他编程语言中做到这一点

参数定义:

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

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

4

2 回答 2

4

如果您已声明参数,则它存在。你想知道的是,它有没有价值?

<xsl:choose>
  <xsl:when test="not($blah)">$blah wasn’t passed in</xsl:when>
  <xsl:otherwise>$blah was passed in</xsl:otherwise>
</xsl:choose>
于 2012-05-14T11:22:21.187 回答
2

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

XSLT 在这方面几乎不是独一无二的:您不会在 Java 方法中找到任何允许方法编写者询问“调用者提供了多少参数?”的东西。如果提供的参数不足,则代码根本无法编译。

于 2012-05-14T13:28:39.580 回答