我在那裏我想了一些可能的路徑相匹配,以下列方式模板的情況: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