का उपयोग कर पैरेंट नोड की स्थिति खोजें xpath का उपयोग कर पूर्ण दस्तावेज़ में पैरेंट नोड की स्थिति कैसे प्राप्त करें?xpath
कहते हैं कि मैं निम्नलिखित xml है:
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
और मैं एक XSLT यह HTML में परिवर्तित करने के लिए है, जो इस प्रकार है (केवल झलकी) है:
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="cd">
<p>
<xsl:number format="1. "/><br/>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="artist"/>
</p>
</xsl:template>
<xsl:template match="title">
<xsl:number format="1" select="????" /><br/>
Title: <span style="color:#ff0000">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
मैं क्या लिखना चाहिए की जगह ???? दस्तावेज़ में पैरेंट सीडी टैग की स्थिति प्राप्त करने के लिए। मैंने कई अभिव्यक्तियों की कोशिश की है लेकिन कुछ भी काम नहीं कर रहा है। हो सकता है कि मैं इसे पूरी तरह से गलत कर रहा हूं।
<xsl:number format="1" select="catalog/cd/preceding-sibling::..[position()]" />
<xsl:number format="1" select="./parent::..[position()]" /><br/>
<xsl:value-of select="count(cd/preceding-sibling::*)+1" /><br/>
मैं चयन वर्तमान नोड के माता-पिता धुरी के रूप में 2 की व्याख्या कर रहा हूँ और उसके बाद वर्तमान नोड के माता-पिता की स्थिति को बताओ। यह क्यों काम नहीं कर रहा है? ऐसा करने का सही तरीका क्या है।
FYI: मुझे उम्मीद है कि कोड वर्तमान शीर्षक टैग uder प्रसंस्करण के मूल सीडी टैग की स्थिति मुद्रित करेगा।
कृपया कोई मुझे बता सकता है कि यह कैसे करें।
धन्यवाद एक टन आदमी, अब यह मेरे की मूर्खतापूर्ण था कि कोशिश करने के लिए नहीं। धन्यवाद फिर से :) – Harshdeep
आप "स्थिति()" के लिए किए गए "गिनती (../ preceding-sibling :: cd) + 1" अभिव्यक्ति की व्याख्या कर सकते हैं। मैंने आपके समाधान का उपयोग किया और यह बहुत अच्छा काम करता है लेकिन मुझे समझ में नहीं आता है कि क्यों नहीं "गिनती (सीडी/पूर्ववर्ती-भाई :: ..) + 1" – Harshdeep
याद रखें एक्सएसएलटी टेम्पलेट्स वर्तमान संदर्भ नोड के परिप्रेक्ष्य से संचालित होते हैं। संबंधित टेम्पलेट में, संदर्भ नोड शीर्षक है। इसलिए, 'गिनती (सीडी ...)' को कोई नोड नहीं मिलेगा क्योंकि 'cd' नामक 'शीर्षक' के कोई भी बच्चे नोड्स नहीं हैं (वास्तव में, 'शीर्षक' में किसी भी नाम का कोई बच्चा नोड नहीं है)। 'सीडी' 'शीर्षक' का अभिभावक है, न कि उसके बच्चे, इसलिए हमें एक स्तर जाना है। – Utkanos