2012-10-02 14 views
1

我想检查模板匹配中的变量,有可能吗?我可以在XSLT中检查模板匹配中的条件吗?

,如:

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

所以模板不应该在XSLT 1.0检查变量$MODE='PURCHASE'以及

+0

虽然有些XSLT 1.0处理器(我相信Xalan就是其中之一),XSLT 1.0并不支持它。然而,你使用'和'的语法是你自己的发明,并且与规范中的任何东西都无关。 –

回答

1

在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