我想在模板匹配中检查变量,是否可能?
像:
<xsl:template match="*:Item and $MODE='PURCHASE'">
因此模板应该检查变量$MODE='PURCHASE'
答案 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