xslt tutorial xslt transformations elements with examples
यह ट्यूटोरियल बताता है कि XSLT क्या है, इसके रूपांतरण, तत्व और उदाहरण के साथ उपयोग। XSLT रूपांतरण कोड विकसित करने के लिए XPath का महत्व भी शामिल है:
'XSLT' शब्द दो शब्दों को मिलाकर बनाया गया है, जैसे कि 'XSL' और 'T', 'XSL' 'एक्स्टेंसिबल स्टाइल्सशीट लैंग्वेज' का संक्षिप्त रूप है और 'T' 'ट्रांसफॉर्मेशन का संक्षिप्त रूप है'।
तो, मूल रूप से, XSLT एक ट्रांसफ़ॉर्मेशन लैंग्वेज है, जिसका इस्तेमाल सोर्स एक्सएमएल डॉक्यूमेंट्स को XML डॉक्युमेंट्स में बदलने के लिए या दूसरे फॉर्मेट जैसे HTML, PDF को XSL-FO (फोर्मेटिंग ऑब्जेक्ट्स), आदि के द्वारा किया जाता है।
आप क्या सीखेंगे:
XSLT का परिचय
परिवर्तन XSLT प्रोसेसर (जैसे सैक्सन, Xalan) की मदद से होता है। यह XSLT प्रोसेसर एक या एक से अधिक XML दस्तावेज़ों को एक XSLT फ़ाइल के स्रोत के रूप में लेता है जिसमें XSLT कोड लिखा होता है और परिणाम / आउटपुट दस्तावेज़ बाद में उत्पन्न होंगे जैसा कि नीचे दिए गए चित्र में दिखाया गया है।
XSLT प्रोसेसर दस्तावेज़ के अंत तक रूट तत्व से शुरू होने वाले विभिन्न स्रोत तत्वों पर नेविगेट करने के लिए X-Path का उपयोग करके स्रोत XML दस्तावेज़ों को पार्स करता है।
अनुशंसित पढ़ना => वह सब जिसके बारे में आपको जानना चाहिए एक्स-पथ
XSLT परिवर्तन
परिवर्तन शुरू करने के लिए हमें एक XML दस्तावेज़ की आवश्यकता है जिस पर XSLT कोड चलेगा, XSLT कोड फ़ाइल और XSLT प्रोसेसर वाले टूल या सॉफ़्टवेयर (आप शिक्षण उद्देश्यों के लिए सॉफ़्टवेयर के किसी भी मुक्त संस्करण या परीक्षण संस्करण का उपयोग कर सकते हैं)।
(1) XML कोड
नीचे स्रोत XML कोड है जिस पर XSLT कोड चलेगा।
फ़ाइल का नाम: किताबें .xml
XSLT Programmer's Reference Michael Kay Wrox 4th Head First Java Kathy Sierra O'reilly 1st SQL The Complete Reference James R. Groff McGraw-Hill 3rd
# 2) XSLT कोड
नीचे XSLT कोड है, जिसके आधार पर उपरोक्त XML डॉक्यूमेंट चलेगा।
फ़ाइल का नाम: पुस्तकें। xsl
Books:-
Book ID Book Name Author Name Publisher Price Edition
# 3) परिणाम / आउटपुट कोड
उपरोक्त XML दस्तावेज़ पर XSLT कोड का उपयोग करने के बाद नीचे दिए गए कोड का उत्पादन किया जाएगा।
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th 3741122298 Head First Java Kathy Sierra O'reilly 1st 9987436700 SQL The Complete Reference James R. Groff McGraw-Hill 3rd
# 4) वेब ब्राउज़र में परिणाम / आउटपुट देखें
पुस्तकें:
बुक आईडी | पुस्तक का नाम | लेखक का नाम | प्रकाशक | कीमत | संस्करण |
---|---|---|---|---|---|
5350192956 है | XSLT प्रोग्रामर का संदर्भ | माइकल के | घबरा जाना | $ 40 | 4 |
3741122298 | हेड फर्स्ट जावा | कैथी सिएरा | ओरैली | $ 19 | 1 |
9987436700 | SQL पूरा संदर्भ | जेम्स आर | मैकग्रा-हिल | $ 45 | 3 |
XSLT तत्वों
उपरोक्त XSLT कोड और इसके कार्य को समझने के लिए, हमें पहले अलग-अलग XSLT तत्वों और उनकी विशेषताओं को समझना होगा।
# 1) या
हर XSLT कोड को मूल तत्व के साथ शुरू होना चाहिए
विशेषताएँ:
- @xmlns: xsl: XSLT मानक के साथ XSLT दस्तावेज़ जोड़ता है।
- @ फैलाव: पार्सल के लिए XSLT कोड के संस्करण को परिभाषित करता है।
#दो)
यह घोषणा आउटपुट दस्तावेजों के परिभाषित लक्ष्य तत्व नियमों को स्रोत दस्तावेज़ के चयनित इनपुट तत्व को संसाधित करने या बदलने के लिए लागू नियमों के एक सेट को परिभाषित करता है।
मूल रूप से दो प्रकार के टेम्पलेट उनकी विशेषताओं के अनुसार उपलब्ध हैं:
(i) नामित टेम्प्लेट: जब xsl: टेम्पलेट तत्व में @name विशेषता होती है तो इसे नामांकित टेम्पलेट कहा जाता है।
नामांकित टेम्प्लेट्स को xsl द्वारा बुलाया जाता है: कॉल-टेम्प्लेट तत्व।
(ii) मैच टेम्पलेट: Xsl: टेम्प्लेट तत्व में @match विशेषता होती है जिसमें इनपुट नोड्स पर एक मिलान पैटर्न या XPath लागू होता है।
मैच टेम्प्लेट्स को xsl द्वारा बुलाया जाता है: एप्लाइं ट-तत्व
xsl: टेम्पलेट तत्व में या तो @ मिलान विशेषता या @name विशेषता या दोनों होना चाहिए। एक xsl: टेम्प्लेट तत्व जिसमें कोई मिलान विशेषता नहीं है, में कोई मोड विशेषता और कोई प्राथमिकता विशेषता नहीं होनी चाहिए।
उपरोक्त XSLT को फिर से लिखें
सेवा मेरे) XSLT कोड के साथ मिलान टेम्पलेट पर आधारित है। नीचे पीले और भूरे रंग के हाइलाइट किए गए कोड देखें, यह आउटपुट परिणाम के समान होगा।
Books:-
Book ID Book Name Author Name Publisher Price Edition
हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:
बी) नामांकित टेम्पलेट पर आधारित XSLT कोड। नीचे पीले और भूरे रंग के हाइलाइट किए गए कोड देखें, यह आउटपुट परिणाम के समान होगा।
Books:-
Book ID Book Name Author Name Publisher Price Edition
हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:
# 3)
प्रोसेसर उन सभी टेम्प्लेटों को ढूंढेगा और लागू करेगा जो XPath को @select विशेषता में परिभाषित कर रहे हैं।
यदि हम एक ही इनपुट सामग्री के साथ आउटपुट के एक से अधिक तरीके देना चाहते हैं तो @mode विशेषता का भी उपयोग किया जाता है।
# 4)
प्रोसेसर @name विशेषता (आवश्यक) के अंदर मूल्य वाले टेम्पलेट्स को कॉल करेगा।
तत्व का उपयोग टेम्पलेट को पैरामीटर पास करने के लिए किया जाता है।
उदाहरणों के साथ लिनक्स में क्रमबद्ध करें
# 5)
उपरोक्त कोड में, @select विशेषता में परिभाषित XPath अभिव्यक्ति के बारे में स्ट्रिंग / पाठ मान प्रदान करें।
यह पुस्तक के नाम का मान देगा।
# 6): दोहराव
यह क्रमबद्ध अनुक्रम में नोड्स के प्रत्येक सेट (@select (आवश्यक) विशेषता में xpath) के लिए निर्देशों को संसाधित करेगा।
उपरोक्त कोड का मतलब स्टोर / बुक के प्रत्येक नोड सेट के लिए है:
/ दुकान / पुस्तक (१)
/ दुकान / पुस्तक (२)
/ स्टोर / पुस्तक (3)
xsl के बच्चे के रूप में भी इस्तेमाल किया जा सकता है: प्रत्येक के लिए छँटाई के क्रम को परिभाषित करने के लिए।
c ++ फ़ंक्शन के लिए अपरिभाषित संदर्भ
# 7): सशर्त प्रसंस्करण
Xsl: यदि निर्देश केवल तभी प्रक्रिया करेगा जब @test विशेषता का बूलियन मान सत्य होगा अन्यथा निर्देश का मूल्यांकन नहीं किया जाएगा और खाली अनुक्रम वापस आ गया है।
2'> Condition True: Count of books are more than two.
परिणाम: शर्त सच: किताबों की गिनती दो से अधिक है।
यहाँ गिनती () पूर्वनिर्धारित फ़ंक्शन है।
# 8): विकल्प स्थिति प्रसंस्करण
xsl: अलग स्थितियों के लिए कई मामलों का चयन करें जिन्हें xsl की @test विशेषता के अंदर परीक्षण किया गया है: जब तत्वों, परीक्षण की स्थिति जो सभी xsl के बीच सबसे पहले सच होती है: जब, कि पहले संसाधित किया जाएगा और एक वैकल्पिक xls हैं: अन्यथा तत्व ऐसा है कि यदि कोई भी स्थिति परीक्षण सही नहीं हुआ तो यह xsl: अन्यथा माना जाएगा।
Condition True: Count of book is one. Condition True: Count of book is two. Condition True: Count of book is three. No condition match.
परिणाम: शर्त सही: किताब की गिनती तीन है।
# 9)
xsl: कॉपी संदर्भ मद पर काम करता है यानी यदि वह नोड है तो यह संदर्भ नोड को नए उत्पन्न नोड में कॉपी करेगा और यह संदर्भ नोड के बच्चों को कॉपी नहीं करेगा। इस कारण से, इसे उथली प्रति कहा जाता है। Xsl के विपरीत: copy-of element, xsl: copy में @ चयन विशेषता नहीं है।
नीचे दिए गए कोड में, संदर्भ वस्तुओं को आउटपुट पर कॉपी किया जाता है और सभी बच्चों के आइटम को xsl द्वारा कॉपी और कॉपी किया जाता है: लागू करें-टेम्पलेट।
नोड () | @ * सभी नोड्स और उनके सभी विशेषताओं की पुनरावृत्ति के लिए खड़ा है।
परिणाम: यह स्रोत दस्तावेज़ के सभी नोड्स और विशेषताओं को आउटपुट दस्तावेज़ के लिए पुनरावर्ती रूप से कॉपी करेगा, अर्थात यह स्रोत दस्तावेज़ की एक सटीक प्रतिलिपि बनाएगा।
# 10)
xsl: copy-of अपने सभी बच्चों और विशेषताओं के साथ नोड्स के अनुक्रम को डिफ़ॉल्ट रूप से कॉपी करेगा, इस प्रकृति के कारण इसे गहरी नकल भी कहा जाता है। XPath के मूल्यांकन के लिए @select विशेषता आवश्यक है।
परिणाम: यह स्रोत दस्तावेज़ के सभी नोड्स और विशेषताओं को आउटपुट दस्तावेज़ के लिए पुनरावर्ती रूप से कॉपी करेगा, अर्थात यह स्रोत दस्तावेज़ की एक सटीक प्रतिलिपि बनाएगा।
वर्तमान नोड और वर्तमान विशेषता की एक प्रति के लिए खड़ा है।
#ग्यारह)
इस तत्व का उपयोग लक्ष्य परिणाम पर टिप्पणी लिखने के लिए किया जाता है, जो भी पाठ सामग्री इस टैग की तरफ होती है उसे टिप्पणी आउटपुट के रूप में मुद्रित किया जाएगा।
इसे टिप्पणी नोड के रूप में आउटपुट करने के लिए प्रिंट किया जाएगा।
परिणाम:
# 12)
यह परिणाम दस्तावेज़ में एक पाठ नोड उत्पन्न करेगा, xsl के अंदर मान: पाठ आउटपुट के लिए एक स्ट्रिंग के रूप में मुद्रित हो जाएगा।
यह है एक
पाठ पंक्ति।
आउटपुट:
यह है एक
पाठ पंक्ति।
# 13)
यह अपने @name विशेषता में वर्णित नाम के साथ परिणाम दस्तावेज़ में एक तत्व उत्पन्न करेगा। नाम विशेषता आवश्यक विशेषता है।
परिणाम: 5350192956 है
# 14)
यह परिणाम दस्तावेज में अपने मूल तत्व के लिए एक विशेषता उत्पन्न करेगा। विशेषता का नाम नाम विशेषता द्वारा परिभाषित किया गया है और विशेषता का मान नीचे के कोड में दिए गए चयन विशेषता में वर्णित XPath द्वारा गणना किया गया है। नाम विशेषता आवश्यक विशेषता है।
परिणाम:
# पंद्रह)
यह तत्व आरोही या अवरोही दिशा के अनुसार चयनित नोड को अनुक्रम में क्रमबद्ध करेगा। नोड या XPath को @ विकल्प विशेषता के माध्यम से दिया गया है और छँटाई की दिशा को @ विशेषता द्वारा परिभाषित किया गया है।
नीचे दिए गए कोड में हम सभी पुस्तकों की सूची पुस्तक के नाम के अनुसार एक वर्णमाला क्रम में प्राप्त करेंगे।
Books:-
Book ID Book Name Author Name Publisher Price Edition
इस स्क्रीनशॉट को हाइलाइट किए गए क्षेत्र के लिए देखें:
परिणाम: नीचे दी गई सूची में पुस्तक के नाम एक वर्णमाला क्रम में हैं, अर्थात आरोही क्रम में।
पुस्तकें:
बुक आईडी | पुस्तक का नाम | लेखक का नाम | प्रकाशक | कीमत | संस्करण |
---|---|---|---|---|---|
3741122298 | हेड फर्स्ट जावा | कैथी सिएरा | ओरैली | $ 19 | 1 |
9987436700 | SQL पूरा संदर्भ | जेम्स आर | मैकग्रा-हिल | $ 45 | 3 |
5350192956 है | XSLT प्रोग्रामर का संदर्भ | माइकल के | घबरा जाना | $ 40 | 4 |
# 16)
यह तत्व एक वैरिएबल घोषित करता है जो इसमें एक मान रखता है। एक वैरिएबल एक ग्लोबल वैरिएबल या लोकल वैरिएबल हो सकता है। वैरिएबल का नाम @name विशेषता द्वारा परिभाषित किया गया है और यह वैरिएबल जो मान रखेगा वह @select विशेषता द्वारा परिभाषित किया गया है।
ग्लोबल वेरिएबल की पहुंच ग्लोबल है यानी वेरिएबल को किसी भी एलिमेंट के भीतर बुलाया जा सकता है और स्टाइलशीट के भीतर एक्सेस किया जा सकता है।
एक वैश्विक चर को परिभाषित करने के लिए, हमें बस यह घोषित करने की आवश्यकता है कि स्टाइलशीट के मूल तत्व के बगल में जैसा कि नीचे दिए गए कोड में पीले हाइलाइट में दिखाया गया है, चर Book सेकंडबुक ’वैश्विक चर है और यह दूसरी पुस्तक का नाम रखता है।
स्थानीय चर की पहुंच उस तत्व के लिए स्थानीय है जिसमें यह परिभाषित किया गया है अर्थात वह चर उस तत्व के बाहर नहीं पहुंच पाएगा जिसमें इसे नीचे दिए गए कोड में दर्शाया गया है जो ग्रे हाइलाइटेड है, चर 'पहली पुस्तक' है स्थानीय चर और यह पहली पुस्तक का नाम रखता है।
स्थानीय वैरिएबल में या तो वैश्विक चर के लिए एक कॉल करने के लिए डॉलर प्रतीक ($) का उपयोग चर के नाम से पहले किया जाता है, जैसा कि नीचे पीले रंग में दिखाया गया है $ ।
First Book Name: Second Book Name:
हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:
परिणाम:
पहली पुस्तक का नाम: XSLT प्रोग्रामर का संदर्भ
दूसरी पुस्तक का नाम: हेड फर्स्ट जावा
# 17)
इस तत्व का उपयोग कुंजी को घोषित करने के लिए किया जाता है, उस विशेष कुंजी के मिलान पैटर्न मूल्यों के लिए।
नाम @name विशेषता द्वारा उस कुंजी के लिए एक प्रदाता है (' प्रकाशक '), जो बाद में कुंजी () फ़ंक्शन के अंदर उपयोग किया जाता है। एक्समैट भावों द्वारा सूचकांक इनपुट नोड को @match विशेषता प्रदान की जाती है (' पुस्तक “), नीचे की तरह पीले रंग की हाइलाइट की गई @match का उपयोग स्टोर में उपलब्ध सभी पुस्तकों पर अनुक्रमित करने के लिए किया जाता है।
@Match विशेषता के सापेक्ष, @use विशेषता का उपयोग किया जाता है, यह नोड को XPath अभिव्यक्ति ('प्रकाशक') के माध्यम से उस कुंजी के लिए मान प्राप्त करने की घोषणा करता है।
अब, मान लीजिए अगर हमें उस पुस्तक के विवरण की आवश्यकता है जो केवल rox Wrox ’प्रकाशक द्वारा प्रकाशित की गई है, तो हम उस मूल्य को आसानी से xsl: कुंजी तत्व के माध्यम से एक कुंजी-मूल्य जोड़ी बनाकर आसानी से प्राप्त कर सकते हैं।
कुंजी (rox get-publisher ’,’ Wrox ’) कुंजी () दो मापदंडों को लेती है, पहले कुंजी का नाम है, जो इस मामले में takes गेट-पब्लिशर ’है, दूसरा वह स्ट्रिंग मान है जिसे खोजने की आवश्यकता है कि हमारे मामले में) Wrox’ है।
Books:-
Book ID Book Name Author Name Publisher Price Edition
हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:
परिणाम:
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th
परिणाम / HTML देखें:
पुस्तकें:
बुक आईडी | पुस्तक का नाम | लेखक का नाम | प्रकाशक | कीमत | संस्करण |
---|---|---|---|---|---|
5350192956 है | XSLT प्रोग्रामर का संदर्भ | माइकल के | घबरा जाना | $ 40 | 4 |
# 18)
इस तत्व का उपयोग XSLT विकास में डीबगिंग उद्देश्यों के लिए किया जाता है। तत्व एप्लिकेशन के मानक आउटपुट स्क्रीन को अपना आउटपुट देता है।
@Terminate विशेषता का उपयोग दो मानों के साथ किया जाता है, 'हाँ' या 'नहीं', यदि मान 'हाँ' पर सेट है, तो परीक्षण समाप्त होने के बाद संदेश भेजने के लिए परीक्षण की शर्त पूरी होने के तुरंत बाद ही पार्सर समाप्त हो जाता है।
इसे समझने के लिए, मान लें कि अगर हमारे इनपुट दस्तावेज़ में मूल्य तत्व नीचे दिए गए कोड की तरह गलती से खाली हो जाता है, तो प्रोसेसर को तुरंत बंद कर देना चाहिए जैसे ही प्रोसेसर खाली मूल्य तत्व का सामना करता है जिसे आसानी से xsl का उपयोग करके प्राप्त किया जा सकता है: नीचे XSLT कोड के रूप में अगर परीक्षण हालत के अंदर संदेश।
डिबगर अलर्ट को एप्लिकेशन मानक स्क्रीन द्वारा दिखाया गया है: Xsl द्वारा समाप्त प्रसंस्करण: पंक्ति 21 पर संदेश।
इनपुट XML कोड:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:
XSLT कोड:
Books:-
Book ID Book Name Author Name Publisher Price Edition Terminating: price element is empty.
हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:
परिणाम: कृपया ध्यान दें कि जैसे ही पार्सर खाली मूल्य टैग का सामना करता है, यह तुरंत प्रसंस्करण समाप्त कर देता है जिसके कारण समापन टैग, और फ़ाइल के अंत में नहीं आएगा।
Books:-
Book ID Book Name Author Name Publisher Price Edition 5350192956 XSLT Programmer's Reference Michael Kay Wrox 4th 3741122298 Head First Java Kathy Sierra O'reilly 1st हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:

# 19) और
तत्व पैरामीटर को टेम्पलेट में परिभाषित करता है यदि अंदर परिभाषित किया गया है। इसे या तो वैश्विक पैरामीटर के रूप में या अंदर उस पैरामीटर के स्थानीय पैरामीटर के रूप में परिभाषित किया जा सकता है।
टेम्प्लेट को बायोरर कहे जाने पर मूल्य का उत्तीर्ण / आपूर्ति किया जाता है।

यह टेम्पलेट को परिभाषित पैरामीटर के मान को पार करता है। @Name जैसी विशेषता में पैरामीटर का नाम होता है जो तत्व के @name विशेषता से मेल खाना चाहिए। @ पैरामीटर का उपयोग उस पैरामीटर के मान को सेट करने के लिए किया जाता है।

एक चर डॉलर चिह्न ($) की तरह ही पैरामीटर के मूल्य को लाने के लिए उपयोग किया जाता है।

विंडोज़ पर डाट फ़ाइल कैसे खोलें
स्रोत XML कोड:
XSLT Programmer's Reference Michael Kay Wrox 4th Head First Java Kathy Sierra O'reilly 1st SQL The Complete Reference James R. Groff McGraw-Hill 3rd
XSLT कोड:
List of Books Name :-
Book Name:
हाइलाइट किए गए क्षेत्र के लिए स्क्रीनशॉट देखें:

परिणाम आउटपुट:
List of Books Name :-
Book Name: XSLT Programmer's Reference
Book Name: Head First Java
Book Name: SQL The Complete Reference