2017-03-09 108 views
1

我有一個如下所示的xml文件。我需要選擇使用xslt 1.0所有「名稱」元素,其中路徑不包含「fast」這個單詞。在這種情況下,我會選擇/ root/name和/ root/name/name,而不是/ root/fast/name。XSLT:模板匹配路徑中不包含元素的所有元素

我原來的模板匹配是

<xslt:template match="/root//name"> 
    .... 
</xslt:template> 

這個工作,但隨後加入了「快」的元素,所以我選擇分手。

我該如何在XSLT 1.0中做到這一點?我一直在嘗試多種方式,但我似乎無法找到一種方法來編譯和做我所需要的。

謝謝大家。

<root> 
    <fast> 
     <name>fast/name</name> 
    </fast> 
    <name>name</name> 
    <name> 
     <name>name/name</name> 
    </name> 
</root> 

回答

0

您可以使用此:模板:如果你的數據在條件跑得比

<xsl:template match="/root//name[not(contains(., 'fast'))]"> 

如果條件與要素比

<xsl:template match="/root//name[not(ancestor::fast)]"> 
+0

訣竅。萬分感謝! –

相關問題