2017-06-05 195 views
-1

我想检查一个键是否有值,如果是空来分配默认值。XSL if else语句

<xsl:element name="xtc"> 
      <xsl:choose name="type"> 
       <xsl:when test="type!= ''"/> 
       <xsl:value-of select="value"/> 
       </xsl:when> 
       <xsl:otherwise> 
        NULL 
      </xsl:otherwise> 
      </xsl:choose> 
    </xsl:element> 

是不是真的为我工作,有人可以好好建议什么可能会失败。

更新 经过一番挖掘,我很确定我的代码应该工作,但事实并非如此。

 <xsl:for-each select="webservice/parameters/parameter"> 
      <xsl:element name="{key}"> 
      <xsl:choose> 
       <xsl:when test="{key} = ''"> 
       <xsl:text>NULL</xsl:text> 
       </xsl:when> 
       <xsl:otherwise> 
       <xsl:value-of select="value"/> 
       </xsl:otherwise> 
      </xsl:choose> 
      </xsl:element> 
     </xsl:for-each> 

但我的应用程序抛出一个错误,

令牌 '{}键' 是出乎意料的。 expression ='{key} ='''剩余的标记是:('{key}''=''''')解析样式表时发生故障。

回答

2

您需要更换这个...

<xsl:when test="{key} = ''"> 

有了这个...

<xsl:when test="key = ''"> 

属性值模板在这里不适用,因为test已经预期的表现。

+0

谢谢,这停止了解析错误。 –

+0

@ J.D但是如果测试结果为true,那么当您尝试创建''时,您的样式表会失败。 –

+0

@ michael.hor257k为什么是=/ –