我在那里我想了一些可能的路径相匹配,以下列方式模板的情况:XSLT匹配模板
<xsl:template match="blah">
<xsl:apply-templates select="foo/*/baz" mode="someMode"/>
</xsl:template>
<xsl:template match="*" mode="someMode">
<xsl:if test="current() != 'foo/bar/baz' and
current() ! ='foo/bam/baz'">
<!-- Process here -->
</xsl:if>
</xsl:template>
因此,大家可以看到,有可能是在任意数量的元素'foo'有'baz'元素(例如'bar','bam','bal','bav'等),但我只知道其中的2个,'bar'和'bam'。我不想处理这些,但我做的其他人。不幸的是,current()方法没有返回匹配的路径,所以测试总是成功的(即使当路径是'foo/bar/baz'或者'foo/bam/baz'时
我怎么能检索在if-test中匹配的路径?
请注意:我不能有其他特别匹配'foo/bar/baz'和'foo/bam/baz'的xsl:template元素,因为它们在其他地方正在处理(在其他方面)。
真棒!非常感谢,修正了它:)不知道你可以在多个模板上使用相同的模式 – starman1979 2013-03-07 19:20:56
@mohisham如果你想到这一点,那就是你一直在做的事 - 通常的元素没有一个'mode'都处于相同的模式(默认模式,没有名字)。 –
2013-03-07 19:27:34