XSL if else语句

时间:2017-06-05 13:08:07

标签: xml xslt

我想检查一个键是否有值,如果为空则指定一个默认值。

    <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>

但是我的应用程序出错了,

  

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

1 个答案:

答案 0 :(得分:2)

您需要替换此...

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

有了......

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

属性值模板不适用于此处,因为test已经需要表达式。