मैं अपने एक्सएमएल में अंतिम तत्व है, जो दिखता हैXSLT हो रही पिछले तत्व
तरह<list>
<element name="A" />
<element name="B" >
<element name="C" />
<element name="D" >
<element name="D" />
<element name="E" />
<element name="F" />
<element name="G" />
</element>
<element name="H" />
<element name="I" />
</list>
मैं रिवर्स मेनू, जहां मौजूदा तत्व और माता-पिता के रूप में "सक्रिय" हाइलाइट किया जाता है किसी तरह का प्राप्त करने की आवश्यकता को खोजने के लिए कोशिश कर रहा हूँ और "निष्क्रिय" के रूप में भाई। इसके परिणामस्वरूप मेरे पास केवल एक गन्दा पेड़ है जब मुझे लगता है कि "डी" तत्व क्लिक किया गया है।
डबल डी तत्व मेरी समस्या है। जब मैं select="//element[@name='D'][last()]"
या select="//element[@name='D' and last()]"
(बीटीडब्ल्यू कौन सा सही है?) पहली बार डी तत्व का पहला घटना चुना गया है (डीबगर यह दिखाता है)। यहाँ XSL
<xsl:template match="list">
<xsl:apply-templates select="//navelement[@name = 'D'][last()]" mode="active"/>
</xsl:template>
<xsl:template match="element">
<ul class="menu">
<xsl:apply-templates select="preceding-sibling::node()" mode="inactive"/>
<li><a>....</a></li>
<xsl:apply-templates select="following-sibling::node()" mode="inactive"/>
</ul>
<xsl:apply-templates select="parent::element" mode="active"/>
</xsl:template>
<xsl:template match="element" mode="inactive">
<li><a>....</a></li>
</xsl:template>
+1 आज़माएं। अच्छा है, मैं भूल गया था कि आप इस तरह से() का उपयोग कर सकते हैं (और एक सूचकांक के उपयोग पर रास्ता बंद था)। – AnthonyWJones
हम पिछले एक से पहले नोड कैसे पा सकते हैं? – Ege
@Ege '[अंतिम() - 1] 'मेरे लिए काम किया – Jessica