- XSLT এর ভূমিকা
- Books:-
- Books:-
- List of Books Name :-
- List of Books Name :-
- Conclusion
- Books:-
- Books:-
- Books:-
- Books:-
- Books:-
- Books:-
- Books:-
এই টিউটোরিয়ালটি ব্যাখ্যা করে XSLT কি, এর রূপান্তর, উপাদান এবং ব্যবহার উদাহরণ সহ। এছাড়াও XSLT রূপান্তর কোড বিকাশের জন্য XPath-এর গুরুত্বকে কভার করে:
"XSLT" শব্দটি দুটি শব্দ যেমন 'XSL' এবং 'T' একত্রিত করে তৈরি করা হয়েছে, 'XSL' হল 'এর সংক্ষিপ্ত রূপ এক্সটেনসিবল স্টাইলশীট ল্যাঙ্গুয়েজ' এবং 'টি' হল 'ট্রান্সফরমেশন'-এর একটি সংক্ষিপ্ত রূপ।
সুতরাং, মূলত, XSLT হল একটি রূপান্তর ভাষা যা উৎস XML নথিগুলিকে XML নথিতে বা অন্যান্য ফর্ম্যাটে রূপান্তর/রূপান্তর করতে ব্যবহৃত হয়। XSL-FO (ফরম্যাটিং অবজেক্ট) ইত্যাদি ব্যবহার করে HTML, PDF হিসেবে।
XSLT এর ভূমিকা
এক্সএসএলটি প্রসেসরের সাহায্যে রূপান্তর ঘটে ( যেমন স্যাক্সন, জালান)। এই XSLT প্রসেসরটি একটি XSLT ফাইলের সাথে এক বা একাধিক XML ডকুমেন্টকে সোর্স হিসাবে নেয় যেটিতে XSLT কোড লেখা থাকে এবং ফলাফল/আউটপুট ডকুমেন্টগুলি পরবর্তীতে নীচের চিত্রে দেখানো হিসাবে তৈরি করা হবে৷
XSLT প্রসেসর মূল উপাদান থেকে শুরু করে ডকুমেন্টের শেষ পর্যন্ত বিভিন্ন উত্স উপাদানে নেভিগেট করার জন্য X-পাথ ব্যবহার করে উত্স XML নথিগুলিকে পার্স করে৷
এক্স-পাথ
এক্সএসএলটি ট্রান্সফরমেশন
পরিবর্তন শুরু করার জন্য আমাদের একটি এক্সএমএল ডকুমেন্ট দরকার যার উপর XSLT কোড চলবে, XSLT কোড ফাইল নিজেই এবং XSLT প্রসেসরযুক্ত টুল বা সফ্টওয়্যার (আপনি সফ্টওয়্যারের যেকোনো বিনামূল্যের সংস্করণ বা ট্রায়াল সংস্করণ ব্যবহার করতে পারেননিচের কোডের মতো ঘটনাক্রমে মূল্য উপাদানটি খালি হয়ে যায়, তারপর প্রসেসর খালি মূল্য উপাদানটির মুখোমুখি হওয়ার সাথে সাথে প্রক্রিয়াকরণটি অবিলম্বে বন্ধ করা উচিত যা নীচের মতো if পরীক্ষার অবস্থার ভিতরে xsl: বার্তা ব্যবহার করে সহজেই অর্জন করা যেতে পারে। XSLT কোড।
ডিবাগার সতর্কতা অ্যাপ্লিকেশন স্ট্যান্ডার্ড স্ক্রীন দ্বারা দেখানো হয়: লাইন 21 এ xsl: বার্তা দ্বারা প্রক্রিয়াকরণ বন্ধ করা হয়েছে।
ইনপুট XML কোড:2
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
হাইলাইট করা এলাকার জন্য স্ক্রিনশট পড়ুন:
XSLT কোড:
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 | $40 | 4th |
3741122298 | Head First Java | Kathy Sierra | O'reilly | $19 | 1st |
হাইলাইট করা এলাকার জন্য স্ক্রিনশট পড়ুন:
#19) &
উপাদানটি টেমপ্লেটে প্যারামিটার সংজ্ঞায়িত করে যদি ভিতরে সংজ্ঞায়িত করা হয়। এটিকে হয় গ্লোবাল প্যারামিটার বা ভিতরেকে সেই টেমপ্লেটের স্থানীয় প্যারামিটার হিসাবে সংজ্ঞায়িত করা যেতে পারে।
টেমপ্লেটটিকে বা দ্বারা কল করা হলে এর মান পাস/সরবরাহ করা হয় ।
এটি টেমপ্লেটে এর ভিতরে সংজ্ঞায়িত প্যারামিটারের মান পাস করে। @name এর মত অ্যাট্রিবিউটে প্যারামিটারের নাম থাকে যা এলিমেন্টের @name অ্যাট্রিবিউটের সাথে মেলে। @Select অ্যাট্রিবিউট সেট করতে ব্যবহার করা হয়সেই প্যারামিটারের একটি মান।
প্যারামিটারের মান আনতে একটি পরিবর্তনশীল ডলার চিহ্ন($) ব্যবহার করা হয়।
উৎস XML কোড:
XSLT Programmer's Reference Michael Kay Wrox $40 4th Head First Java Kathy Sierra O'reilly $19 1st SQL The Complete Reference James R. Groff McGraw-Hill $45 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
#20)
is used to import another stylesheet module inside our current stylesheet. This helps in achieving a modular XSLT development approach.
After importing all the templates get available to use. The priority of the templates defined in the parent stylesheet(which is importing another stylesheet) is higher than the imported stylesheet (which is imported by the parent stylesheet).
If another stylesheet also has the same name template as defined inside the template that is importing then the foreign templates get overridden by your own template.
Attribute @href is used as the URI of the stylesheet that you want to import.
#21)
Same as the above xsl:import, also helps in achieving a modular XSLT development approach. All the templates included by have the same priority/precedence as the calling stylesheet. It is like you copy all the templates from another stylesheet to your own stylesheet.
Attribute @href is used as the URI of the stylesheet that you want to import.
#22)
This element is used to specify the result tree in the output file. It contains attributes like @method that can have values like ‘XML’, ‘HTML’, ‘XHTML’ and ‘text’ by default is ‘XML’.
@encoding specifies the character encoding that comes in the output file as shown in below example encoding=”UTF-16″, the default values for XML or XHTML could be either UTF-8 or UTF-16. @indent specifies the indentation of the XML or HTML output code, for XML the default value is ‘no’ and for HTML and XHTML the default value is yes.
#23)
This element is used for stripping(removing) non-significant whitespace for the listed source element inside the @element attribute and if we want to strip whitespace from all the elements then we can use ‘*’ inside @elements attribute.
#24)
This element is used to preserve white spaces for the listed source element inside the @element attribute and if we want to preserve whitespace from all the elements, then we can use ‘*’ inside @elements attribute.
Conclusion
Thus in this article, we have learned about XSLT, frequently used XSLT elements, their usage with example source and target/result code, conversion or transformation of the source element to the target element.
We also discussed the importance of XPath to develop XSLT conversion code. We have seen the XSL template declaration and template calling & passing parameters. We learned to declare global and local variables, their usage in the XSLT code, and how to call them.
We learnt about different branching or conditional XSLT elements like xsl:if, xsl:for-each, xsl:choose. We understood the difference between shallow copying and deep copying, sorting of nodes, debugging of XSLT code by using xsl:message, the difference between named templates and match templates, and output formatting by using xsl:output.
About the Author: Himanshu P. is an experienced professional in the field of Information Technology. He has worked with ITC MNCs on cross-business domains and multiple technologies. Himanshu’s favorite pastime is reading magazines and blogging.
#1) XML কোড
নিচে উৎস XML কোড রয়েছে যার উপর XSLT কোড চলবে।
ফাইলের নাম: Books.xml
XSLT Programmer's Reference Michael Kay Wrox $40 4th Head First Java Kathy Sierra O'reilly $19 1st SQL The Complete Reference James R. Groff McGraw-Hill $45 3rd
#2) XSLT কোড
নীচে XSLT কোড রয়েছে যার উপর ভিত্তি করে উপরের XML নথিতে চলবে।
ফাইলের নাম: Books.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 | $40 | 4th |
3741122298 | Head First Java | Kathy Sierra | O'reilly | $19 | 1st |
9987436700 | SQL The Complete Reference | James R. Groff | McGraw-Hill | $45 | 3rd |
# 4) ওয়েব ব্রাউজারে ফলাফল / আউটপুট দেখুন
বই:
14>XSLT উপাদানগুলি
উপরের বোঝার জন্য XSLT কোড এবং এর কাজ, আমাদের প্রথমে বিভিন্ন XSLT উপাদান এবং তাদের বৈশিষ্ট্যগুলি বুঝতে হবে।
#1) অথবা
প্রতিটি XSLT কোড অবশ্যই মূল উপাদান দিয়ে শুরু করতে হবে অথবা
অ্যাট্রিবিউটস:
- @xmlns:xsl: XSLT স্ট্যান্ডার্ডের সাথে XSLT নথিকে সংযুক্ত করে।
- @সংস্করণ: XSLT কোডের সংস্করণকে সংজ্ঞায়িত করেপার্সার।
#2)
এই ঘোষণাটি উৎস নথির নির্বাচিত ইনপুট উপাদানটিকে আউটপুট নথির সংজ্ঞায়িত লক্ষ্য উপাদান নিয়মে প্রক্রিয়া বা রূপান্তর করার জন্য প্রয়োগ করা নিয়মগুলির একটি সেট সংজ্ঞায়িত করে .
মূলত, তাদের বৈশিষ্ট্য অনুসারে দুই ধরনের টেমপ্লেট পাওয়া যায়:
(i) নামের টেমপ্লেট: যখন xsl: টেমপ্লেট উপাদান @name অ্যাট্রিবিউট ধারণ করে তারপর একে নামযুক্ত টেমপ্লেট বলা হয়।
নামযুক্ত টেমপ্লেটগুলিকে xsl:কল-টেমপ্লেট উপাদান দ্বারা ডাকা হয়।
(ii) ম্যাচ টেমপ্লেট: xsl:টেমপ্লেট উপাদানটিতে @match অ্যাট্রিবিউট রয়েছে যা ইনপুট নোডে প্রয়োগ করা একটি ম্যাচিং প্যাটার্ন বা XPath ধারণ করে।
ম্যাচ টেমপ্লেটগুলিকে xsl:apply-template উপাদান দ্বারা বলা হয়।
xsl :টেমপ্লেট এলিমেন্টে অবশ্যই @match অ্যাট্রিবিউট বা @name অ্যাট্রিবিউট বা উভয়ই থাকতে হবে। একটি xsl:টেমপ্লেট উপাদান যার কোনো মিল বৈশিষ্ট্য নেই তার অবশ্যই কোনো মোড বৈশিষ্ট্য এবং কোনো অগ্রাধিকার বৈশিষ্ট্য থাকতে হবে।
আসুন উপরের XSLT(
Books:-
Book ID | Book Name | Author Name | Publisher | Price | Edition |
---|
হাইলাইট করা এলাকার জন্য স্ক্রিনশট পড়ুন:
b) XSLT কোড সহ নামযুক্ত টেমপ্লেটের উপর ভিত্তি করে। নীচে হলুদ & ধূসর হাইলাইট করা পরিবর্তিত কোড, এটি উপরের আউটপুট ফলাফল একই দেবে৷
Books:-
Book ID | Book Name | Author Name | Publisher | Price | Edition |
---|
হাইলাইটের জন্য স্ক্রিনশট পড়ুনএলাকা:
#3)
প্রসেসর XPath-এ @select অ্যাট্রিবিউটে সংজ্ঞায়িত সমস্ত টেমপ্লেট খুঁজে বের করবে এবং প্রয়োগ করবে।
>>প্রসেসর @name অ্যাট্রিবিউটের মধ্যে থাকা টেমপ্লেটগুলিতে একটি কল করবে (প্রয়োজনীয়)।
উপাদানটি টেমপ্লেটে প্যারামিটারগুলি পাস করতে ব্যবহৃত হয়।3
#5)
উপরের কোডে সংজ্ঞায়িত @select অ্যাট্রিবিউটে সংজ্ঞায়িত XPath এক্সপ্রেশন সম্পর্কিত স্ট্রিং/টেক্সট মান প্রদান করুন।
এটি এর মান দেবে বইয়ের নাম।
#6) : পুনরাবৃত্তি
এটি নোডের প্রতিটি সেটের জন্য নির্দেশাবলী প্রক্রিয়া করবে (এক্সপাথ @select (প্রয়োজনীয়) অ্যাট্রিবিউটে সংজ্ঞায়িত করা হয়েছে) সাজানো ক্রমানুসারে।
স্টোর/বইয়ের প্রতিটি নোড সেটের জন্য উপরের কোড মানে হল:
/store/book[1]
/store/book[2] ]
/store/book[3]
এছাড়াও xsl:for-each এর চাইল্ড হিসেবে ব্যবহার করা যেতে পারে সাজানোর ক্রম নির্ধারণ করতে।
#7) : শর্তসাপেক্ষ প্রক্রিয়াকরণ
xsl:if নির্দেশাবলী শুধুমাত্র তখনই প্রসেস করা হবে যদি @test অ্যাট্রিবিউটের বুলিয়ান মান সত্য হয় অন্যথায় নির্দেশের মূল্যায়ন করা হবে না এবং খালি ক্রম ফেরত দেওয়া হবে।
2"> Condition True: Count of books are more than two.
ফলাফল: শর্ত সত্য: বইয়ের সংখ্যা দুইটির বেশি।
এখানে গণনা() হল পূর্বনির্ধারিত ফাংশন।
#8) :XPath-এর মূল্যায়নের জন্য অ্যাট্রিবিউট প্রয়োজন৷
ফলাফল: এটি আউটপুট নথিতে পুনরাবৃত্তভাবে উত্স নথির সমস্ত নোড এবং বৈশিষ্ট্যগুলি অনুলিপি করবে, যেমন এটি একটি সঠিক অনুলিপি তৈরি করবে উৎস নথির।
বর্তমান নোড এবং বর্তমান বৈশিষ্ট্যের একটি অনুলিপি।
#11)
এই উপাদানটি লক্ষ্যে একটি মন্তব্য লিখতে ব্যবহৃত হয় ফলস্বরূপ, এই ট্যাগের পাশে থাকা যেকোনো টেক্সট কন্টেন্ট কমেন্ট করা আউটপুট হিসেবে প্রিন্ট করা হবে।
এটি একটি কমেন্ট নোড হিসেবে আউটপুটে প্রিন্ট করা হবে।
0 ফলাফল:#12)
এটি ফলাফল নথিতে একটি টেক্সট নোড তৈরি করবে, xsl:text-এর ভিতরের মানটি আউটপুটে স্ট্রিং হিসাবে প্রিন্ট করা হবে .
এটি একটি
টেক্সট লাইন৷
আউটপুট:
এটি একটি
টেক্সট লাইন।
#13)
এটি ফলাফল নথিতে একটি উপাদান তৈরি করবে নামটি তার @name অ্যাট্রিবিউটে উল্লেখ করা হয়েছে। নামের অ্যাট্রিবিউটটি প্রয়োজনীয় অ্যাট্রিবিউট।
ফলাফল: 5350192956
#14)
এটি ফলাফল নথিতে এর মূল উপাদানের একটি বৈশিষ্ট্য তৈরি করবে। অ্যাট্রিবিউটের নামটি নাম অ্যাট্রিবিউট দ্বারা সংজ্ঞায়িত করা হয় এবং অ্যাট্রিবিউটের মান নিচের কোডে দেওয়া সিলেক্ট অ্যাট্রিবিউটে উল্লিখিত XPath দ্বারা গণনা করা হয়। নামের অ্যাট্রিবিউটটি প্রয়োজনীয় অ্যাট্রিবিউট।
ফলাফল:
#15)
এই উপাদানটি সাজানো হবেক্রমানুসারে নির্বাচিত নোডটি সেই অনুযায়ী আরোহী বা অবরোহী দিকে। নোড বা XPath @select অ্যাট্রিবিউটের মাধ্যমে দেওয়া হয় এবং সাজানোর দিকনির্দেশ @order অ্যাট্রিবিউট দ্বারা সংজ্ঞায়িত করা হয়।
নীচের কোডে আমরা বর্ণানুক্রম অনুসারে বইয়ের নাম অনুসারে সমস্ত বইয়ের তালিকা পাব।
Books:-
Book ID | Book Name | Author Name | Publisher | Price | Edition |
---|---|---|---|---|---|
হাইলাইট করা এলাকার জন্য এই স্ক্রিনশটটি পড়ুন:
ফলাফল: নীচের তালিকায় বইয়ের নাম রয়েছে বর্ণানুক্রমিক ক্রমানুসারে অর্থাৎ আরোহী ক্রমে।
বই:
বুক আইডি | বইয়ের নাম | লেখকের নাম | প্রকাশক | মূল্য | সংস্করণ |
---|---|---|---|---|---|
3741122298 | প্রথম জাভা | ক্যাথি সিয়েরা | ও 'reilly | $19 | 1ম |
9987436700 | SQL সম্পূর্ণ রেফারেন্স | জেমস আর. গ্রফ | McGraw-Hill | $45 | 3য় |
5350192956 | XSLT প্রোগ্রামারের রেফারেন্স | মাইকেল কে | Wrox | $40 | 4র্থ |
#16)
এই উপাদানটি ঘোষণা করে একটি পরিবর্তনশীল যা এটিতে একটি মান রাখে। একটি পরিবর্তনশীল একটি বিশ্ব পরিবর্তনশীল বা একটি স্থানীয় পরিবর্তনশীল হতে পারে। ভেরিয়েবলের নাম @name অ্যাট্রিবিউট দ্বারা সংজ্ঞায়িত করা হয় এবং এই ভেরিয়েবলটি যে মানটি ধারণ করবে তা @select অ্যাট্রিবিউট দ্বারা সংজ্ঞায়িত করা হয়।
গ্লোবাল ভেরিয়েবলের অ্যাক্সেস গ্লোবাল অর্থাৎ ভেরিয়েবলকে যেকোনও মধ্যে বলা যেতে পারে। উপাদান এবং অ্যাক্সেসযোগ্য থাকেস্টাইলশীটের মধ্যে।
একটি গ্লোবাল ভেরিয়েবলকে সংজ্ঞায়িত করতে, আমাদের শুধু ঘোষণা করতে হবে যে স্টাইলশীটের রুট এলিমেন্টের পাশে যেমন হলুদ হাইলাইটেড নীচের কোডে দেখানো হয়েছে, ভেরিয়েবল 'সেকেন্ডবুক' হল গ্লোবাল ভেরিয়েবল এবং এটি দ্বিতীয় বইয়ের নাম ধারণ করে৷
স্থানীয় ভেরিয়েবলের অ্যাক্সেস সেই উপাদানের স্থানীয় যা এটিকে সংজ্ঞায়িত করা হয়েছে অর্থাৎ যে উপাদানটিতে এটি সংজ্ঞায়িত করা হয়েছে তার বাইরে সেই পরিবর্তনশীলটি অ্যাক্সেসযোগ্য হবে না নীচের কোডটি ধূসর হাইলাইট করা হয়েছে, ভেরিয়েবল 'প্রথম বই' একটি স্থানীয় ভেরিয়েবল এবং এটি প্রথম বইয়ের নাম ধারণ করে।
লোকাল ভেরিয়েবলের জন্য গ্লোবাল ভেরিয়েবলে কল করতে ডলার চিহ্ন ($) ভেরিয়েবলের নামের আগে ব্যবহার করা হয়, যেমনটি হলুদ হাইলাইট করা নিচে দেখানো হয়েছে $ ।
First Book Name: Second Book Name:
হাইলাইট করা এলাকার জন্য স্ক্রিনশট পড়ুন:
ফলাফল:
প্রথম বইয়ের নাম: XSLT প্রোগ্রামারের রেফারেন্স
দ্বিতীয় বইয়ের নাম: হেড ফার্স্ট জাভা
#17)
এই উপাদানটি কী ঘোষণা করতে ব্যবহার করা হয়, সেই নির্দিষ্ট কীটির সাথে মিলে যাওয়া প্যাটার্ন মানগুলির জন্য।
নাম হল @name অ্যাট্রিবিউট (“1) দ্বারা সেই কীটির একটি প্রদানকারী> get-publisher “), যা পরে কী() ফাংশনের ভিতরে ব্যবহার করা হয়। @match অ্যাট্রিবিউট XPath এক্সপ্রেশন (“ বই “) দ্বারা ইনডেক্স ইনপুট নোডে প্রদান করা হয়, যেমন নীচে হলুদ হাইলাইট করা @match দোকানে উপলব্ধ সমস্ত বইয়ের সূচী করতে ব্যবহৃত হয়।
আপেক্ষিক@match অ্যাট্রিবিউট, @use অ্যাট্রিবিউট ব্যবহার করা হয়, এটি XPath এক্সপ্রেশন(“প্রকাশক”) এর মাধ্যমে সেই কীটির মান পেতে নোড ঘোষণা করে।
এখন, ধরুন যদি আমাদের বইটির বিশদ বিবরণ প্রয়োজন যা শুধুমাত্র 'Wrox' প্রকাশক দ্বারা প্রকাশিত হয় তাহলে আমরা xsl:key উপাদানের মাধ্যমে একটি কী-মান জোড়া তৈরি করে সহজেই সেই মানটি পেতে পারি।
কী('get- প্রকাশক', 'Wrox') কী() দুটি প্যারামিটার নেয়, প্রথমটি কীটির নাম, যা এই ক্ষেত্রে 'গেট-প্রকাশক', দ্বিতীয়টি হল স্ট্রিং মান যা অনুসন্ধান করতে হবে যা আমাদের ক্ষেত্রে '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 | $40 | 4th |
ফলাফল / HTML ভিউ:
বই:
বুক আইডি | বইয়ের নাম | লেখকের নাম | প্রকাশক | মূল্য2 | সংস্করণ 17> |
---|---|---|---|---|---|
5350192956 | XSLT প্রোগ্রামারের রেফারেন্স | মাইকেল কে | Wrox | $40 | 4র্থ |
#18)
এই উপাদানটি ডিবাগ করার উদ্দেশ্যে ব্যবহার করা হয় XSLT উন্নয়ন। উপাদানটি অ্যাপ্লিকেশনের স্ট্যান্ডার্ড আউটপুট স্ক্রিনে তার আউটপুট দেয়।
@টার্মিনেট অ্যাট্রিবিউটটি দুটি মানের সাথে 'হ্যাঁ' বা 'না' ব্যবহার করা হয়, যদি মানটি 'হ্যাঁ' তে সেট করা হয় তবে পার্সার বার্তাটি কার্যকর করার জন্য পরীক্ষার শর্ত সন্তুষ্ট হওয়ার সাথে সাথেই তা বন্ধ হয়ে যায়।
এটি বোঝার জন্য, ধরুন আমাদের ইনপুটে থাকলেবিকল্প কন্ডিশন প্রসেসিং
xsl:choose এ xsl:when উপাদানের @test অ্যাট্রিবিউটের ভিতরে পরীক্ষা করা বিভিন্ন অবস্থার একাধিক কারণ রয়েছে প্রথম এবং সেখানে একটি ঐচ্ছিক 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:copy প্রসঙ্গ আইটেমের উপর কাজ করে যেমন যদি এটি নোড হয় তবে এটি প্রসঙ্গ নোডটিকে নতুন তৈরি করা নোডে অনুলিপি করবে এবং এটি শিশুদের অনুলিপি করবে না প্রসঙ্গ নোডের। এই কারণে, এটি একটি অগভীর অনুলিপি বলা হয়। xsl:copy-of element-এর বিপরীতে, xsl:copy-এ @select অ্যাট্রিবিউট নেই।
নীচের কোডে, প্রসঙ্গ আইটেমগুলি আউটপুটে কপি করা হয় & সমস্ত শিশু আইটেম বলা হয় & xsl:apply-template পুনরাবৃত্তভাবে অনুলিপি করা হয়েছে।
নোড()