可以在xsl中声明变量:if在XSLT中?

时间:2015-07-15 12:54:54

标签: xml xslt

我想在xsl:if内声明一个变量,但我不知道这是否可以在XSLT中使用。

这是我到目前为止所做的:

<xsl:if test="mstns:OutlineLevel = 1">
    <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
    <xsl:value-of select="0" /> 
    <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</xsl:if>
<xsl:if test="mstns:OutlineLevel = 2">
    <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
    <xsl:value-of select="$parent" /> 
    <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</xsl:if>

我想要的是:

<xsl:if test="mstns:OutlineLevel = 1">
    <xsl:variable name="parent" >
        <set the value of the variable to mstns:ID>
    </xsl:variable>
</xsl:if> 

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这可能对你有帮助。

<xsl:variable name="parent">
  <xsl:choose>
    <xsl:when test="mstns:OutlineLevel = 1">
      <xsl:text>1</xsl:text>
    </xsl:when>
    <xsl:when test="mstns:OutlineLevel = 2">
      <xsl:text>2</xsl:text>
    </xsl:when>
  </xsl:choose>
</xsl:variable>

答案 1 :(得分:0)

是的,可以在XSLT中的xsl:if内声明变量:

<xsl:if test="  TEST XPATH EXPRESSION  ">

  <!-- variable declaration alternatives -->

  <xsl:variable name="var" select="  XPATH EXPRESSION  "/>

  <!-- or -->

  <xsl:variable name="var">
    <!-- variable binding element -->
  </xsl:variable>

  <!-- or -->

  <xsl:variable name="var"/>
  <!-- ($var is an empty string in this case) -->


  <!-- First use of $var-->
  <!-- Second use of $var-->
  <!-- ... -->

</xsl:if>