2015-01-08 4 views
5

कोड में मैं तत्व टेम्पलेट (कोड के अंत में) सभी टेम्पलेट्स को लागू कर रहा हूं लेकिन मैं जानना चाहता हूं कि आवेदन करना कैसे संभव है एक नमूना को छोड़कर इस तत्व के लिए सभी टेम्पलेट्स। इस मामले में यह तत्व शीर्षक है क्योंकि मैं इसे पहले से ही लाइन में चुन रहा हूं और यह HTML फ़ाइल में दोहराया गया है। कोई व्यक्ति?कैसे लागू करें- एक नमूना को छोड़कर सभी टेम्पलेट्स पर टेम्पलेट्स

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

आउटपुट:

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

उत्तर

11

एक सादे <xsl:apply-templates/><xsl:apply-templates select="node()" /> के बराबर है, अर्थात सभी बच्चे नोड्स। आप XPath 2.0 except operator का उपयोग कर कुछ नोड्स को बहिष्कृत कर सकते हैं, उदा।

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

यह सभी बच्चे नोड्स को छोड़कर उन है कि नाम title साथ तत्व हैं का चयन करेंगे। यदि आप केवल तत्व (टेक्स्ट नोड आदि नहीं) में रुचि रखते हैं तो आप इसके बजाय * except title का उपयोग कर सकते हैं।

except ऑपरेटर अनिवार्य रूप से सेट अंतर लागू करता है - आप दाईं ओर सरल तत्व नामों तक ही सीमित नहीं हैं, आप किसी भी अभिव्यक्ति का उपयोग कर सकते हैं जो नोड्स का अनुक्रम देता है, उदा।

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

X except Y सभी नोड्स कि Xद्वारा चयनित क्रम में कर रहे हैं और यह भी नहीं में अनुक्रम Y

द्वारा चयनित का चयन करता है
संबंधित मुद्दे