如果条件在xsl

时间:2013-01-28 16:31:15

标签: xslt

我需要把像我的构建格式的条件类似于STP_13_00_00_00_RC01或STPMON_13_00_00_00_RC01。如果perfix是STP,那么我想运行一个小脚本,如果执行其他STP则不需要运行脚本并使用其他动作我怎么能实现这个目标呢?

我mada在我的代码中做了一些更改我在这里做的是创建文件夹并将tar文件复制到该文件夹​​。这里的文件夹名称以STP或ACH开头然后我想用一些参数执行我的脚本,否则什么都没有。

   <xsl:element name="mkdir">
                <xsl:attribute name="dir">/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${gbl.dist.label}</xsl:attribute>
                 </xsl:element>
            <xsl:element name="copy">
                <xsl:attribute name="file">${archive.base}/${gbl.dist.label}.tar.gz</xsl:attribute>
                <xsl:attribute name="todir">/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${gbl.dist.label}/</xsl:attribute>
                <xsl:attribute name="overwrite">no</xsl:attribute>
            </xsl:element>
            <xsl:choose>
            <xsl:when test="starts-with(Node, 'STP')">
            <xsl:element name="mkdir">
            <xsl:attribute name="dir">/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${soa.release.version}</xsl:attribute>
            </xsl:element>
            </xsl:when>
            <xsl:otherwise>
            <!-- alternative action -->
            </xsl:otherwise>
            </xsl:choose>

2 个答案:

答案 0 :(得分:1)

您的XSLT说“条件一或条件二”,但我只在您的问题中看到一个条件。要测试值是否具有特定前缀,您可以执行以下操作:

<xsl:choose>
  <xsl:when test="starts-with(Node, 'STP')">
    <!-- action -->
  </xsl:when>
  <xsl:otherwise>
    <!-- alternative action -->
  </xsl:otherwise>
</xsl:choose>

答案 1 :(得分:0)

<xsl:choose>
  <xsl:when test="contains(node,"STP")">
    <!-- action -->
  </xsl:when>
  <xsl:otherwise>
    <!-- alternative action -->
  </xsl:otherwise>
</xsl:choose>