2015-01-08 16 views
5

Kodun başlangıcında tüm şablonları şablon bölümüne uygularım (kodun sonunda) ancak nasıl uygulanabileceğini bilmek istiyorum Bu elemente ait tüm şablonlar bir spefic olanı hariç. Bu durumda, daha önce satırda seçtiğim ve html dosyasında yinelenen göründüğünden öğe başlığıdır. Birisi?Spefic one hariç tüm şablonlar için şablonlar nasıl uygulanır?

<xsl:template match="chapter"> 
    <h3> 
     <a name="{@id}"><xsl:value-of select="title"/></a> 
    </h3> 
    <xsl:apply-templates/> 
</xsl:template> 

Çıkış: Düz <xsl:apply-templates/><xsl:apply-templates select="node()" /> eşdeğerdir

<h3>Title</h3> 
Title<br> 
Text. 

cevap

11

, yani tüm çocuk düğümleri içerir. Bazı düğümleri XPath 2.0 except operator, ör.

<xsl:apply-templates select="node() except title" /> 

Buna çocuk düğümleri hariç adıyla title ile unsurlardır olanları seçmek olacaktır. Yalnızca öğeleri öğelerinde (metin düğümleri vb.) Ilgileniyorsanız, bunun yerine * except title'u kullanabilirsiniz.

except işleci temel olarak set farkını uygular - sağdaki basit eleman isimleriyle sınırlı değilsiniz, örneğin bir dizi düğüm döndüren herhangi bir ifadeyi kullanabilirsiniz.

node() except (title | div[@class = 'heading']) 

X except Y

Xtarafından seçilen sekansı vardır ve aynı zamanda sekans Y

tarafından seçilmiş olan düğümleri seçer