我可以在XSLT中检查模板匹配中的条件吗?

时间:2012-10-02 12:09:52

标签: xslt

我想在模板匹配中检查变量,是否可能?

像:

 <xsl:template match="*:Item and $MODE='PURCHASE'">

因此模板应该检查变量$MODE='PURCHASE'

1 个答案:

答案 0 :(得分:1)

不在XSLT 1.0中。

在XSLT 2.0中,可以使用变量引用 - 在模板匹配模式的谓词中。

例如

<xsl:stylesheet version="2.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>

    <xsl:param name="MODE" select="'PURCHASE'"/>

 <xsl:template match="*:Item[$MODE='PURCHASE']">
     <xsl:value-of select="."/>
 </xsl:template>
</xsl:stylesheet>

对此XML文档应用此转换时:

<t xmlns:x="some:x">
  <x:Item>someText</x:Item>
</t>

产生了想要的正确结果:

  someText