2012-04-20 9 views
14

में निम्नलिखित भाई मैं काफी XSLT के लिए नया हूँ पाने के लिए और यह मेरा एक्सएमएल है:कैसे XSLT

<projects> 
    <project> 
     <number>1</number> 
     <title>Project X</title> 
    </project> 
    <project> 
     <number>2</number> 
     <title>Project Y</title> 
    </project> 
    <project> 
     <number>3</number> 
     <title>Project Z</title> 
    </project> 
</projects> 

अगर मैं एक परियोजना है और भाई कि यह इस प्रकार प्राप्त करना चाहते हैं, मैं कैसे ऐसा कर सकते हैं ?

इस कोड मेरे लिए काम नहीं लगता है:

/projects[title="Project X"]/following-sibling 

उत्तर

28

यह वास्तव में एक पूरी तरह से XPath सवाल है।

उपयोग:

/*/project[title = 'Project X']/following-sibling::project[1] 

यह चयन करता है किसी भी पहले किसी भी Project तत्व यह है कि XML दस्तावेज में शीर्ष तत्व और कम से कम अपनी title में से एक की की स्ट्रिंग मान का एक बच्चा है के Project भाई निम्नलिखित बच्चे स्ट्रिंग "Project X" है।

XSLT - आधारित सत्यापन:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="/"> 
    <xsl:copy-of select= 
     "/*/project[title = 'Project X']/following-sibling::project[1]"/> 
</xsl:template> 
</xsl:stylesheet> 

जब इस बदलाव प्रदान की XML दस्तावेज़ पर भी लागू होता है:

<projects> 
    <project> 
     <number>1</number> 
     <title>Project X</title> 
    </project> 
    <project> 
     <number>2</number> 
     <title>Project Y</title> 
    </project> 
    <project> 
     <number>3</number> 
     <title>Project Z</title> 
    </project> 
</projects> 

XPath अभिव्यक्ति का मूल्यांकन किया और सही ढंग से चयनित तत्व है आउटपुट में कॉपी किया गया है:

<project> 
    <number>2</number> 
    <title>Project Y</title> 
</project> 
+0

हे Dimitre, जो एक आकर्षण की तरह काम करता है। बहुत बहुत धन्यवाद! – Tintin81

+0

@ टिनटिन 81: आपका स्वागत है। –

 संबंधित मुद्दे