xslt ट्यूटोरियल
Xslt के साथ आरंभ करना
खोज…
टिप्पणियों
XSLT (XSL ट्रांसफ़ॉर्मेशन, एक्स्टेंसिबल स्टाइल्सशीट लैंग्वेज ट्रांसफ़ॉर्मेशन) एक प्रोग्रामिंग भाषा है जो XML पर आधारित है और जिसका उद्देश्य XML को हेरफेर करना और बदलना है। यह एक कार्यात्मक प्रोग्रामिंग भाषा और W3C मानक है। XSLT का उपयोग करके आप एक या एक से अधिक XML दस्तावेज़ों को एक परिणाम में बदल सकते हैं जिसमें विभिन्न प्रकार के आउटपुट स्वरूप (XML, HTML, पाठ) हो सकते हैं।
XSLT को समझने के लिए - सबसे अच्छा काम करने का ज्ञान होना सबसे अच्छा है:
- एक्सएमएल
- XPath
इन दो अंतर्निहित अवधारणाओं के बिना आपको XSLT सीखने में कठिनाई होगी। सबसे पहले, क्योंकि एक XSLT दस्तावेज़ एक XML दस्तावेज़ है। और दूसरी बात, एक्सएसएलटी दस्तावेज़ एक्सएमएल दस्तावेज़ का उपयोग एक्सएमएल दस्तावेज़ को बदलने के लिए क्वेरी करते हैं।
अनुशंसित पढ़ने: https://en.wikipedia.org/wiki/XSLT
संस्करण
| संस्करण | विशिष्टता | स्थिति | रिलीज़ की तारीख |
|---|---|---|---|
| XSLT 1.0 | https://www.w3.org/TR/xslt | सिफ़ारिश करना | 1998/08/18 |
| XSLT 2.0 | https://www.w3.org/TR/xslt20 | सिफ़ारिश करना | 2007/01/23 |
| XSLT 3.0 | https://www.w3.org/TR/xslt-30 | उम्मीदवार की सिफारिश | 2015/11/19 |
स्थापना या सेटअप
XSLT एक विशेष प्रयोजन प्रोग्रामिंग भाषा है; यह व्यापक रूप से XML दस्तावेजों को या तो एक अलग XML प्रारूप में, HTML में, या पाठ-आधारित प्रारूपों में बदलने के लिए उपयोग किया जाता है।
उपयोग में XSLT के दो मुख्य संस्करण हैं: XSLT 1.0 और XSLT 2.0। XSLT 1.0 अधिक व्यापक रूप से लागू किया गया है लेकिन XSLT 2.0 के साथ तुलना में कई प्रतिबंध और सीमाएं हैं; आपको यह तय करना होगा कि किस संस्करण का उपयोग करना है। यदि आपके चुने हुए वातावरण के लिए XSLT 2.0 प्रोसेसर उपलब्ध है, तो यह लगभग हमेशा बेहतर विकल्प है।
(XSLT 1.0 नवंबर 1999 में बाहर आया, और कई कार्यान्वयन एक या दो साल के भीतर दिखाई दिए, दोनों Microsoft, IBM, Sun और Oracle जैसे मुख्यधारा के विक्रेताओं से, और अपने खाली समय में काम करने वाले अलग-अलग उत्साही लोगों से। XSLT 2.0 जनवरी में सामने आए। 2007, और कई मूल 1.0 प्रोसेसर को कभी अपग्रेड नहीं किया गया था, क्योंकि उनके डेवलपर्स ने रुचि खो दी थी। सबसे व्यापक रूप से इस्तेमाल किया जाने वाला XSLT 2.0 प्रोसेसर सैक्सन है, लेकिन इसमें स्वयं के लिए फ़ील्ड नहीं है: अन्य मुक्त उत्पादों में RaptorXML (Altova द्वारा) शामिल हैं ), XmlPrime (CBCL से) और Exselt, और 2.0 प्रोसेसर भी IBM के WebLogic में, MarkLogic के XML डेटाबेस सर्वर में और Intel के XML एक्सेलेरेटर में एम्बेडेड हैं।)
XSLT 3.0 का विनिर्देश तकनीकी रूप से पूर्ण है (अप्रैल 2017 में प्रस्तावित सिफारिश) लेकिन इस समय के लिए रक्तस्राव-बढ़त के रूप में सबसे अच्छा माना जाता है: केवल इस पर विचार करें कि क्या आपको इसकी नई सुविधाओं, जैसे कि स्ट्रीमिंग, पैकेज, JSON समर्थन की आवश्यकता है , या कोशिश / पकड़। तीन ज्ञात कार्यान्वयन हैं: सैक्सन, एक्ससेल्ट, और रैप्टरएक्सएमएल।
XSLT के साथ आरंभ करने के लिए आपके पास कई विकल्प हैं:
एक ऑनलाइन XSLT उपकरण का उपयोग करें। कई उपलब्ध हैं ("ऑनलाइन एक्सएसएलटी टूल की खोज"), एक बहुत विश्वसनीय ऑनलाइन आईडीई है http://xsltransform.net/ । यह भाषा के लिए प्रारंभिक अनुभव प्राप्त करने का एक अच्छा तरीका है, लेकिन वास्तविक विकास करने के बाद आप इस तरह से नहीं चलना चाहेंगे।
हर ब्राउज़र में निर्मित XSLT इंजन का उपयोग करें। ऑनलाइन टूल के साथ, इनका यह फायदा है कि आपको कुछ भी स्थापित करने की आवश्यकता नहीं है; लेकिन ब्राउज़र केवल XSLT 1.0 का समर्थन करते हैं, वे केवल XML-से-HTML रूपांतरण का समर्थन करते हैं, और उनके पास बहुत कमजोर डिबगिंग समर्थन है। एक बहुत हाल ही में - लेकिन अभी भी प्रयोगात्मक - विकास सैक्सन-जेएस है, जो ब्राउज़र में एक्सएसएलटी 2.0 (और एक्सएसएलटी 3.0 के कुछ हिस्सों) के निष्पादन की अनुमति देता है।
एक XSLT प्रोसेसर (जैसे सैक्सन या xsltproc) स्थापित करें। इनमें से अधिकांश उत्पादों को ऑपरेटिंग सिस्टम कमांड लाइन का उपयोग करके या विशेष प्रोग्रामिंग भाषाओं जैसे जावा, सी, सी #, या पायथन के लिए एक एपीआई का उपयोग करके मंगवाया जा सकता है।
एक XML विकास वातावरण स्थापित करें जैसे कि Altova XML Spy, SyncroSoft, या स्टाइलस स्टूडियो से ऑक्सीजन। यद्यपि यह एक अधिक महंगा विकल्प है, यह विकास को बहुत अधिक समर्थन और डिबगिंग क्षमता देता है।
आप जो भी विकल्प चुनते हैं, आपको पहले यह तय करना चाहिए कि आप XSLT 1.0 या XSLT 2.0 का उपयोग करना चाहते हैं।
सरल XSLT उदाहरण
यहां एक सरल उदाहरण है जो एक्सएमएलटी का उपयोग एक्सएमएल फ़ाइल में HTML फ़ाइल में तालिका में डेटा परिवर्तित करने के लिए करता है। आप इसका उपयोग सरल एक्सएसएलटी परिवर्तनों के साथ प्रयोग करने के लिए कर सकते हैं।
शर्त: एक जावा रनटाइम पर्यावरण स्थापित करें और अपने PATH चर में JRE का स्थान जोड़ें। (विंडोज पर, अधिकांश इंस्टॉलर आपके लिए जावा को आपके रास्ते में जोड़ देंगे।) यदि यह काम करता है, तो आपको कमांड-लाइन विंडो खोलने और कमांड java -version चलाने और अपने JRE के बारे में जानकारी का प्रिंटआउट प्राप्त करने में सक्षम होना चाहिए।
- जावा के लिए Saxon-HE XSLT प्रोसेसर यहां डाउनलोड करें: saxon.sourceforge.net और इसे अपने कंप्यूटर पर कहीं भी अनज़िप करें।
- एक पाठ संपादक में, निम्नलिखित कोड के साथ
pets.xmlनाम की एक फ़ाइल बनाएं:
<pets>
<petType name="Dogs">
<pet id="123" name="Sparky" vaccineStatus="vaccinated" healthStatus="healthy"/>
<pet id="234" name="Sadie" vaccineStatus="unvaccinated" healthStatus="sick"/>
<pet id="345" name="Herman" vaccineStatus="unvaccinated" healthStatus="unknown"/>
</petType>
<petType name="Cats">
<pet id="456" name="Cleo" vaccineStatus="vaccinated" healthStatus="healthy"/>
<pet id="567" name="Janet" vaccineStatus="unvaccinated" healthStatus="healthy"/>
<pet id="678" name="Furry" vaccineStatus="vaccinated" healthStatus="sick"/>
</petType>
</pets>
- एक पाठ संपादक में, निम्नलिखित कोड के साथ
petTransform.xslनाम की एक फ़ाइल बनाएं:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<!-- handle the root XML element -->
<xsl:template match="/">
<html><head>
<title>Pets that are available for adoption</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="pets">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="petType">
<h2><xsl:value-of select="@name"/></h2>
<table id="{@name}">
<tr>
<th colname="id">ID</th>
<th colname="name">Name</th>
<th colname="vaccinated">Vaccine status</th>
<th colname="health">Health status</th>
</tr>
<tbody>
<!-- add a row for each pet in this category -->
<xsl:for-each select="pet">
<tr>
<td colname="id"><xsl:value-of select="@id"/></td>
<td colname="name"><xsl:value-of select="@name"/></td>
<td colname="vaccinated"><xsl:value-of select="@vaccineStatus"/></td>
<td colname="health"><xsl:value-of select="@healthStatus"/></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:template>
<!-- ignore the content of other tags because we processed them elsewhere -->
<xsl:template match="*">
<!-- do nothing -->
</xsl:template>
</xsl:stylesheet>
- एक कमांड-लाइन विंडो खोलें और XML और XSLT फ़ाइलों के साथ फ़ोल्डर पर जाएं।
- निम्न कमांड चलाएँ, जहाँ
path_to_saxon.jarफ़ाइल का पूरा पथsaxon9he.jar:
java -jar "path_to_saxon.jar" -o
petOutput.html -s:pets.xml -xsl:pettransform.xslt
उदाहरण के लिए:
java -jar "C:\Program Files\SaxonHE9-7-0-7J\saxon9he.jar" -o
petOutput.html -s:pets.xml -xsl:pettransform.xslt
इस कमांड को एक ही लाइन पर चलाना सुनिश्चित करें।
- टेक्स्ट एडिटर में आउटपुट फ़ाइल
petOutput.htmlखोलें। इसे ऐसा दिखना चाहिए:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pets that are available for adoption</title>
</head>
<body>
<h2>Dogs</h2>
<table id="Dogs">
<tr>
<th colname="id">ID</th>
<th colname="name">Name</th>
<th colname="vaccinated">Vaccine status</th>
<th colname="health">Health status</th>
</tr>
<tbody>
<tr>
<td colname="id">123</td>
<td colname="name">Sparky</td>
<td colname="vaccinated">vaccinated</td>
<td colname="health">healthy</td>
</tr>
<tr>
<td colname="id">234</td>
<td colname="name">Sadie</td>
<td colname="vaccinated">unvaccinated</td>
<td colname="health">sick</td>
</tr>
<tr>
<td colname="id">345</td>
<td colname="name">Herman</td>
<td colname="vaccinated">unvaccinated</td>
<td colname="health">unknown</td>
</tr>
</tbody>
</table>
<h2>Cats</h2>
<table id="Cats">
<tr>
<th colname="id">ID</th>
<th colname="name">Name</th>
<th colname="vaccinated">Vaccine status</th>
<th colname="health">Health status</th>
</tr>
<tbody>
<tr>
<td colname="id">456</td>
<td colname="name">Cleo</td>
<td colname="vaccinated">vaccinated</td>
<td colname="health">healthy</td>
</tr>
<tr>
<td colname="id">567</td>
<td colname="name">Janet</td>
<td colname="vaccinated">unvaccinated</td>
<td colname="health">healthy</td>
</tr>
<tr>
<td colname="id">678</td>
<td colname="name">Furry</td>
<td colname="vaccinated">vaccinated</td>
<td colname="health">sick</td>
</tr>
</tbody>
</table>
</body>
</html>
- एक वेब ब्राउज़र में आउटपुट फ़ाइल
petOutput.htmlखोलें। यह एक साधारण तालिका में डेटा दिखाना चाहिए।