XSLT条件变量

时间:2018-01-02 18:49:27

标签: variables xslt

我有一个相对简单的问题。 (至少我认为这很简单)。

我从SharePoint 2013列表中提取值。我有以下代码:

<xsl:variable name="target">
  <xsl:choose>
    <xsl:when test="@NewWindow = 'Yes'">
      <xsl:value-of select="_blank" />
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="_self" />
  </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

我想要的是以下内容:

if NewWindow = Yes
  target = _blank
else
  target = _self

上面的代码只是在使用{@NewWindow}时打印出来,或者在使用{$ target}时根本没有打印出来。

感谢任何和所有帮助!

1 个答案:

答案 0 :(得分:1)

select属性中的值是XPath表达式,而不是静态值。作为XPath表达式,_blank将选择名为_blank的元素。

要使用静态值,您可以使用<xsl:text>,也可以不使用任何内容。

使用<xsl:text>

<xsl:variable name="target">
  <xsl:choose>
    <xsl:when test="@NewWindow = 'Yes'">
      <xsl:text>_blank</xsl:text>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>_self<xsl:text>
  </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

仅使用值:

<xsl:variable name="target">
  <xsl:choose>
    <xsl:when test="@NewWindow = 'Yes'">_blank</xsl:when>
    <xsl:otherwise>_self</xsl:otherwise>
  </xsl:choose>
</xsl:variable>