1

我想检查模板匹配中的变量,可以吗?

像:

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

所以模板也应该检查$MODE='PURCHASE'变量

4

1 回答 1

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
于 2012-10-02T12:21:40.827 回答