ការបង្រៀន XSLT – ការផ្លាស់ប្តូរ XSLT & ធាតុជាមួយឧទាហរណ៍

ការបង្រៀននេះពន្យល់ពីអ្វីទៅជា XSLT ការផ្លាស់ប្តូរ ធាតុ និងការប្រើប្រាស់របស់វាជាមួយនឹងឧទាហរណ៍។ គ្របដណ្ដប់លើសារៈសំខាន់នៃ XPath ក្នុងការអភិវឌ្ឍន៍កូដបំប្លែង XSLT៖

ពាក្យ “XSLT” ត្រូវបានបង្កើតដោយការផ្សំពាក្យពីរគឺ 'XSL' និង 'T', 'XSL' គឺជាទម្រង់ខ្លីនៃ ' Extensible Stylesheet Language' និង 'T' គឺជាទម្រង់ខ្លីនៃ 'Transformation'។

ដូច្នេះជាមូលដ្ឋាន XSLT គឺជាភាសាបំប្លែងដែលត្រូវបានប្រើដើម្បីបំប្លែង/បំប្លែងឯកសារ XML ប្រភពទៅជាឯកសារ XML ឬទម្រង់ផ្សេងទៀតដូចជា ជា HTML, PDF ដោយប្រើ XSL-FO (Formatting Objects)។ ដូចជា Saxon, Xalan) ។ អង្គដំណើរការ XSLT នេះយកឯកសារ XML មួយ ឬច្រើនជាប្រភពជាមួយឯកសារ XSLT មួយដែលមានកូដ XSLT ដែលត្រូវបានសរសេរនៅក្នុងវា ហើយឯកសារលទ្ធផល/លទ្ធផលនឹងត្រូវបានបង្កើតនៅពេលក្រោយ ដូចបង្ហាញក្នុងដ្យាក្រាមខាងក្រោម។

ប្រព័ន្ធដំណើរការ XSLT ញែកប្រភពឯកសារ XML ដោយប្រើ X-Path ដើម្បីរុករកលើធាតុប្រភពផ្សេងៗគ្នា ដោយចាប់ផ្តើមពីធាតុ root រហូតដល់ចុងបញ្ចប់នៃឯកសារ។

អ្វីទាំងអស់ដែលអ្នកត្រូវដឹងអំពី X-Path

XSLT Transformation

សម្រាប់ការចាប់ផ្តើមការផ្លាស់ប្តូរ យើងត្រូវការឯកសារ XML មួយដែលលេខកូដ XSLT នឹងដំណើរការ។ ឯកសារកូដ XSLT ខ្លួនវា និងឧបករណ៍ ឬកម្មវិធីដែលមានប្រព័ន្ធដំណើរការ XSLT (អ្នកអាចប្រើកំណែឥតគិតថ្លៃ ឬកំណែសាកល្បងនៃកម្មវិធីសម្រាប់ឯកសារធាតុតម្លៃមកទទេដោយចៃដន្យដូចនៅក្នុងកូដខាងក្រោម បន្ទាប់មកដំណើរការគួរតែបញ្ឈប់ភ្លាមៗនៅពេលដែល processor ជួបប្រទះធាតុតម្លៃទទេ ដែលអាចសម្រេចបានយ៉ាងងាយស្រួលដោយប្រើ xsl:message នៅក្នុងលក្ខខណ្ឌ if test ដូចក្នុងខាងក្រោម កូដ XSLT។

ការដាស់តឿនបំបាត់កំហុសត្រូវបានបង្ហាញដោយអេក្រង់ស្តង់ដារកម្មវិធី៖ ដំណើរការត្រូវបានបញ្ចប់ដោយ xsl:message នៅបន្ទាត់ទី 21។

បញ្ចូលកូដ XML៖2

 SQL The Complete Reference James R. Groff McGraw-Hill  3rd 

យោងរូបថតអេក្រង់សម្រាប់ផ្ទៃដែលបានបន្លិច៖

លេខកូដ XSLT៖

Books:-

Terminating: price element is empty.
Book IDBook NameAuthor NamePublisherPriceEdition

សូមមើលរូបថតអេក្រង់សម្រាប់តំបន់ដែលបានបន្លិច៖

លទ្ធផល៖ សូមចំណាំថា ភ្លាមៗនោះអ្នកញែកជួបនឹងស្លាកតម្លៃទទេ។ វាបញ្ឈប់ដំណើរការភ្លាមៗ ដោយសារតែស្លាកបិទ ហើយនឹងមិនមកនៅចុងបញ្ចប់នៃឯកសារ។

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition
5350192956XSLT Programmer's ReferenceMichael KayWrox$404th
3741122298Head First JavaKathy SierraO'reilly$191st

យោងរូបថតអេក្រង់សម្រាប់ផ្ទៃដែលបានបន្លិច៖

#19) &

ធាតុកំណត់ប៉ារ៉ាម៉ែត្រទៅជាគំរូ ប្រសិនបើកំណត់នៅខាងក្នុង។ វា​អាច​ត្រូវ​បាន​កំណត់​ទាំង​ខាង​ក្នុង​ជា​ប៉ារ៉ាម៉ែត្រ​សកល ឬ​ខាងក្នុង​ជា​ប៉ារ៉ាម៉ែត្រ​មូលដ្ឋាន​ចំពោះ​គំរូ​នោះ។

តម្លៃ​នៃ​ត្រូវ​បាន​ឆ្លង​កាត់/ផ្គត់ផ្គង់​នៅពេល​គំរូ​ត្រូវ​បាន​ហៅ​ដោយ .

វាបញ្ជូនតម្លៃនៃប៉ារ៉ាម៉ែត្រដែលបានកំណត់នៅខាងក្នុង ទៅពុម្ព។ គុណលក្ខណៈដូចជា @name មានឈ្មោះនៃប៉ារ៉ាម៉ែត្រដែលគួរតែត្រូវគ្នានឹងគុណលក្ខណៈ @name នៃធាតុ។ @Select attribute ត្រូវបានប្រើដើម្បីកំណត់តម្លៃទៅប៉ារ៉ាម៉ែត្រនោះ។

ដើម្បីទៅយកតម្លៃនៃប៉ារ៉ាម៉ែត្រដូចគ្នាដូចជាសញ្ញាដុល្លារអថេរ ($) ត្រូវបានប្រើ។

កូដ 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:

មើលរូបថតអេក្រង់សម្រាប់ផ្ទៃដែលបានបន្លិច៖2

លទ្ធផលលទ្ធផល៖

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 IDBook NameAuthor NamePublisherPriceEdition

#3) Result / Output Code

កូដខាងក្រោមនឹងត្រូវបានផលិតបន្ទាប់ពីប្រើកូដ XSLT នៅលើឯកសារ XML ខាងលើ។

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition
5350192956XSLT Programmer's ReferenceMichael KayWrox$404th
3741122298Head First JavaKathy SierraO'reilly$191st
9987436700SQL The Complete ReferenceJames R. GroffMcGraw-Hill$453rd

# 4) មើលលទ្ធផល / លទ្ធផលនៅក្នុងកម្មវិធីរុករកបណ្តាញ

សៀវភៅ៖

លេខសម្គាល់សៀវភៅ ឈ្មោះសៀវភៅ ឈ្មោះអ្នកនិពន្ធ អ្នកបោះពុម្ព តម្លៃ Edition
5350192956 ឯកសារយោងរបស់អ្នកសរសេរកម្មវិធី XSLT Michael Kay Wrox $40 ទី4
3741122298 Head First Java Kathy Sierra O'reilly $19 ទីមួយ
9987436700 SQL ឯកសារយោងពេញលេញ James R. Groff McGraw-Hill $45 ទីបី

ធាតុ XSLT

ដើម្បីយល់ពីខាងលើ កូដ XSLT និងដំណើរការរបស់វា ជាដំបូងយើងត្រូវយល់អំពីធាតុ XSLT ផ្សេងគ្នា និងគុណលក្ខណៈរបស់វា។

#1) ឬ

កូដ XSLT នីមួយៗត្រូវតែចាប់ផ្តើមដោយធាតុ root ឬ

គុណលក្ខណៈ៖

  • @xmlns:xsl: ភ្ជាប់ឯកសារ XSLT ជាមួយស្តង់ដារ XSLT ។
  • @version: កំណត់កំណែនៃកូដ XSLT ទៅញែក។

#2)

ការប្រកាសនេះកំណត់សំណុំនៃច្បាប់ដែលបានអនុវត្តដើម្បីដំណើរការ ឬបំប្លែងធាតុបញ្ចូលដែលបានជ្រើសរើសនៃឯកសារប្រភពទៅជាច្បាប់ធាតុគោលដៅដែលបានកំណត់នៃឯកសារលទ្ធផល .

ជាទូទៅ គំរូពីរប្រភេទគឺអាចរកបានតាមគុណលក្ខណៈរបស់ពួកគេ៖

(i) គំរូដែលមានឈ្មោះ៖ នៅពេលដែល xsl: ធាតុពុម្ព មានគុណលក្ខណៈ @name បន្ទាប់មកវាត្រូវបានគេហៅថាគំរូដែលមានឈ្មោះ។

គំរូដែលមានឈ្មោះត្រូវបានហៅដោយធាតុ xsl:call-template។

(ii) គំរូផ្គូផ្គង៖ ធាតុ xsl:template មានគុណលក្ខណៈ @match ដែលមានលំនាំផ្គូផ្គង ឬ XPath ដែលបានអនុវត្តនៅថ្នាំងបញ្ចូល។

គំរូផ្គូផ្គងត្រូវបានហៅដោយធាតុ xsl:apply-template។

xsl ៖ ធាតុគំរូត្រូវតែមានគុណលក្ខណៈ @match ឬគុណលក្ខណៈ @name ឬទាំងពីរ។ xsl:ធាតុគំរូដែលមិនមានគុណលក្ខណៈដែលត្រូវគ្នា ត្រូវតែមិនមានគុណលក្ខណៈរបៀប និងមិនមានគុណលក្ខណៈអាទិភាព។

តោះសរសេរ XSLT ខាងលើឡើងវិញ(

a) កូដ XSLT ផ្អែកលើគំរូផ្គូផ្គងជាមួយ . សូមមើលខាងក្រោមពណ៌លឿង & កូដដែលបានបន្លិចពណ៌ប្រផេះដែលបានផ្លាស់ប្តូរ វានឹងបង្កើតលទ្ធផលលទ្ធផលខាងលើដូចគ្នា។

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

សូមមើលរូបថតអេក្រង់សម្រាប់ផ្ទៃដែលបានបន្លិច៖

b) កូដ XSLT ផ្អែកលើគំរូដែលមានឈ្មោះជាមួយ . សូមមើលខាងក្រោមពណ៌លឿង & កូដដែលបានបន្លិចពណ៌ប្រផេះដែលបានផ្លាស់ប្តូរ វានឹងបង្កើតលទ្ធផលលទ្ធផលខាងលើដូចគ្នា។

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

សូមមើលរូបថតអេក្រង់សម្រាប់ការបន្លិចតំបន់៖

#3)

ខួរក្បាលនឹងស្វែងរក និងអនុវត្តគំរូទាំងអស់ដែលមាន XPath ដែលបានកំណត់នៅក្នុងគុណលក្ខណៈ @select ។

គុណលក្ខណៈ @mode ក៏ត្រូវបានប្រើប្រាស់ផងដែរ ប្រសិនបើយើងចង់ផ្តល់លទ្ធផលច្រើនជាងមួយជាមួយនឹងមាតិកាបញ្ចូលដូចគ្នា។

#4)

ខួរក្បាលនឹងធ្វើការហៅទៅកាន់គំរូដែលមានតម្លៃនៅក្នុងគុណលក្ខណៈ @name (ទាមទារ)។

ធាតុត្រូវបានប្រើដើម្បីបញ្ជូនប៉ារ៉ាម៉ែត្រទៅពុម្ព។3

#5)

ផ្តល់តម្លៃខ្សែអក្សរ/អត្ថបទទាក់ទងនឹងកន្សោម XPath ដែលបានកំណត់ក្នុងគុណលក្ខណៈ @select ដូចដែលបានកំណត់ក្នុងកូដខាងលើ។

 

វានឹងផ្តល់តម្លៃនៃ ឈ្មោះសៀវភៅ។

#6): ពាក្យដដែលៗ

វានឹងដំណើរការការណែនាំសម្រាប់សំណុំថ្នាំងនីមួយៗ (xpath ដែលបានកំណត់ក្នុងគុណលក្ខណៈ @select (required)) នៅក្នុងលំដាប់ដែលបានតម្រៀប។

 

លេខកូដខាងលើមានន័យថាសម្រាប់សំណុំថ្នាំងនីមួយៗនៃហាង/សៀវភៅមានន័យថា៖

/store/book[1]

/store/book[2 ]

/store/book[3]

ក៏អាចប្រើជាកូនរបស់ xsl:for-each ដើម្បីកំណត់លំដាប់នៃការតម្រៀប។

#7): ដំណើរការតាមលក្ខខណ្ឌ

ការណែនាំ xsl:if នឹងដំណើរការលុះត្រាតែតម្លៃ Boolean នៃគុណលក្ខណៈ @test នឹងជាការពិត បើមិនដូច្នេះទេ ការណែនាំនឹងមិនត្រូវបានវាយតម្លៃ ហើយលំដាប់ទទេត្រូវបានត្រឡប់មកវិញ។

2">  Condition True: Count of books are more than two.  

លទ្ធផល៖ លក្ខខណ្ឌពិត៖ ចំនួនសៀវភៅមានច្រើនជាងពីរ។

នៅទីនេះ count() គឺជាមុខងារដែលបានកំណត់ជាមុន។

#8):គុណលក្ខណៈត្រូវបានទាមទារសម្រាប់ការវាយតម្លៃនៃ XPath។

លទ្ធផល៖ វានឹងចម្លងថ្នាំង និងគុណលក្ខណៈទាំងអស់នៃឯកសារប្រភពឡើងវិញទៅឯកសារលទ្ធផល ពោលគឺវានឹងបង្កើតច្បាប់ចម្លងពិតប្រាកដ នៃឯកសារប្រភព។

តំណាងឱ្យច្បាប់ចម្លងនៃថ្នាំងបច្ចុប្បន្ន និងគុណលក្ខណៈបច្ចុប្បន្ន។

#11)

ធាតុនេះត្រូវបានប្រើដើម្បីសរសេរមតិទៅកាន់គោលដៅ លទ្ធផល ខ្លឹមសារអត្ថបទណាមួយដែលនៅខាងស្លាកនេះនឹងត្រូវបានបោះពុម្ពជាលទ្ធផលដែលបានបញ្ចេញមតិ។

វានឹងត្រូវបានបោះពុម្ពទៅជាលទ្ធផលជាថ្នាំងមតិយោបល់។

លទ្ធផល៖

#12)

វានឹងបង្កើតថ្នាំងអត្ថបទទៅកាន់ឯកសារលទ្ធផល តម្លៃនៅក្នុង xsl:text នឹងត្រូវបានបោះពុម្ពជាខ្សែអក្សរដែលត្រូវបញ្ចេញ ។

នេះគឺជា

បន្ទាត់អត្ថបទ។

លទ្ធផល៖

នេះគឺជា

បន្ទាត់អត្ថបទ។

#13)

វានឹងបង្កើតធាតុមួយទៅឯកសារលទ្ធផលជាមួយ ឈ្មោះដែលបានរៀបរាប់នៅក្នុងគុណលក្ខណៈ @name របស់វា។ គុណលក្ខណៈឈ្មោះគឺជាគុណលក្ខណៈដែលត្រូវការ។

លទ្ធផល៖ 5350192956

#14)

វានឹងបង្កើតគុណលក្ខណៈទៅធាតុមេរបស់វានៅក្នុងឯកសារលទ្ធផល។ ឈ្មោះនៃគុណលក្ខណៈត្រូវបានកំណត់ដោយគុណលក្ខណៈឈ្មោះហើយតម្លៃនៃគុណលក្ខណៈត្រូវបានគណនាដោយ XPath ដែលបានរៀបរាប់នៅក្នុងគុណលក្ខណៈជ្រើសរើសដូចដែលបានផ្តល់ឱ្យក្នុងកូដខាងក្រោម។ គុណលក្ខណៈឈ្មោះគឺជាគុណលក្ខណៈដែលត្រូវការ។

លទ្ធផល៖

#15)

ធាតុនេះនឹងតម្រៀបថ្នាំង​ដែល​បាន​ជ្រើស​ក្នុង​លក្ខណៈ​លំដាប់​មួយ​ស្រប​តាម​ទិស​ឡើង​ឬ​ចុះ។ ថ្នាំង ឬ XPath ត្រូវបានផ្តល់តាមរយៈ @select attribute ហើយទិសដៅនៃការតម្រៀបត្រូវបានកំណត់ដោយ @order attribute។

នៅក្នុងកូដខាងក្រោម យើងនឹងទទួលបានបញ្ជីសៀវភៅទាំងអស់តាមឈ្មោះសៀវភៅតាមលំដាប់អក្ខរក្រម។

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

សូមមើលរូបថតអេក្រង់នេះសម្រាប់ផ្ទៃដែលបានបន្លិច៖

លទ្ធផល៖ បញ្ជីខាងក្រោមមានឈ្មោះសៀវភៅ តាមលំដាប់អក្ខរក្រម ពោលគឺតាមលំដាប់ឡើង។

សៀវភៅ៖

លេខសម្គាល់សៀវភៅ ឈ្មោះសៀវភៅ ឈ្មោះអ្នកនិពន្ធ អ្នកបោះពុម្ព តម្លៃ Edition
3741122298 Head First Java Kathy Sierra O 'reilly $19 ទីមួយ
9987436700 SQL ឯកសារយោងពេញលេញ James R. Groff McGraw-Hill $45 ទីបី
5350192956 ឯកសារយោងរបស់អ្នកសរសេរកម្មវិធី XSLT Michael Kay Wrox $40 ទី 4

#16)

ធាតុនេះប្រកាស អថេរ​ដែល​មាន​តម្លៃ​នៅ​ក្នុង​វា។ អថេរអាចជាអថេរសកល ឬអថេរមូលដ្ឋាន។ ឈ្មោះរបស់អថេរត្រូវបានកំណត់ដោយ @name attribute ហើយតម្លៃដែលអថេរនេះនឹងរក្សាទុកត្រូវបានកំណត់ដោយ @select attribute។

ការចូលប្រើនៃអថេរសកលគឺសកល ពោលគឺអថេរអាចត្រូវបានគេហៅថានៅក្នុងផ្នែកណាមួយ។ ធាតុនិងអាចចូលដំណើរការបាន។នៅក្នុងសន្លឹករចនាប័ទ្ម។

ដើម្បីកំណត់អថេរសកល យើងគ្រាន់តែត្រូវការប្រកាសថានៅជាប់នឹងធាតុឫសនៃសន្លឹករចនាប័ទ្មដូចដែលបានបង្ហាញក្នុងកូដខាងក្រោមនៅក្នុងពណ៌លឿងដែលបានបន្លិច អថេរ 'សៀវភៅទីពីរ' គឺជាអថេរសកល ហើយវាមានឈ្មោះនៃសៀវភៅទីពីរ។

ការចូលប្រើនៃអថេរមូលដ្ឋានគឺមូលដ្ឋានទៅកាន់ធាតុដែលវាត្រូវបានកំណត់ ពោលគឺអថេរនោះនឹងមិនអាចចូលប្រើបាននៅខាងក្រៅធាតុដែលវាត្រូវបានកំណត់ដូចដែលបានបង្ហាញក្នុង កូដខាងក្រោមដែលត្រូវបានបន្លិចពណ៌ប្រផេះ អថេរ 'សៀវភៅទីមួយ' គឺជាអថេរមូលដ្ឋាន ហើយវារក្សាឈ្មោះសៀវភៅដំបូង។

ដើម្បីធ្វើការហៅទៅអថេរសកលទៅអថេរមូលដ្ឋាន និមិត្តសញ្ញាដុល្លារ ($) ត្រូវ​បាន​ប្រើ​នៅ​ពី​មុខ​ឈ្មោះ​នៃ​អថេរ ដូច​បង្ហាញ​ខាង​ក្រោម​ជា​ពណ៌​លឿង​ដែល​បាន​បន្លិច $ .

       First Book Name:    Second Book Name:     

មើល​រូបថត​អេក្រង់​សម្រាប់​ផ្ទៃ​ដែល​បាន​បន្លិច៖

លទ្ធផល៖

ឈ្មោះសៀវភៅទីមួយ៖ ឯកសារយោងរបស់អ្នកសរសេរកម្មវិធី XSLT

ឈ្មោះសៀវភៅទីពីរ៖ ក្បាលទីមួយ Java

#17)

ធាតុនេះត្រូវបានប្រើដើម្បីប្រកាសសោ សម្រាប់តម្លៃលំនាំដែលត្រូវគ្នាទៅនឹងសោជាក់លាក់នោះ។

ឈ្មោះគឺជាអ្នកផ្តល់ឲ្យកូនសោនោះដោយគុណលក្ខណៈ @name(“ get-publisher “) ដែលក្រោយមកត្រូវបានប្រើប្រាស់នៅក្នុងមុខងារ key()។ គុណលក្ខណៈ @match ត្រូវបានផ្តល់ទៅឱ្យថ្នាំងបញ្ចូលលិបិក្រមដោយកន្សោម XPath (" សៀវភៅ ") ដូចជានៅក្នុងពណ៌លឿងខាងក្រោមដែលបន្លិច @match ត្រូវបានប្រើដើម្បីធ្វើលិបិក្រមលើសៀវភៅទាំងអស់ដែលមាននៅក្នុងហាង។

ទាក់ទងទៅនឹងគុណលក្ខណៈ @match គុណលក្ខណៈ @use ត្រូវបានប្រើ វាប្រកាសថ្នាំងដើម្បីទទួលបានតម្លៃសម្រាប់សោនោះតាមរយៈកន្សោម XPath ("អ្នកបោះពុម្ពផ្សាយ")។

ឥឡូវនេះ ឧបមាថាប្រសិនបើ យើងត្រូវការព័ត៌មានលម្អិតនៃសៀវភៅដែលត្រូវបានបោះពុម្ពដោយអ្នកបោះពុម្ព 'Wrox' តែប៉ុណ្ណោះ នោះយើងអាចទទួលបានតម្លៃនោះយ៉ាងងាយស្រួលតាមរយៈ xsl:key element ដោយបង្កើតគូតម្លៃ key-value។

key('get- Publisher', 'Wrox') Key() យកប៉ារ៉ាម៉ែត្រពីរ ទីមួយគឺជាឈ្មោះរបស់ key ដែលក្នុងករណីនេះគឺ 'get-publisher' ទីពីរគឺជាតម្លៃ string ដែលត្រូវការស្វែងរក ដែលក្នុងករណីរបស់យើងគឺ 'Wrox'។

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

សូមមើលរូបថតអេក្រង់សម្រាប់ផ្ទៃដែលបានបន្លិច៖

លទ្ធផល៖

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition
5350192956XSLT Programmer's ReferenceMichael KayWrox$404th

មើលលទ្ធផល / HTML៖

សៀវភៅ៖

លេខសម្គាល់សៀវភៅ ឈ្មោះសៀវភៅ ឈ្មោះអ្នកនិពន្ធ អ្នកបោះពុម្ព តម្លៃ2 កំណែ
5350192956 ឯកសារយោងរបស់អ្នកសរសេរកម្មវិធី XSLT Michael Kay Wrox $40 ទី 4

#18)

ធាតុនេះត្រូវបានប្រើសម្រាប់គោលបំណងបំបាត់កំហុសនៅក្នុង ការអភិវឌ្ឍន៍ XSLT ។ ធាតុផ្តល់លទ្ធផលរបស់វាទៅអេក្រង់លទ្ធផលស្តង់ដារនៃកម្មវិធី។

គុណលក្ខណៈ @terminate ត្រូវបានប្រើជាមួយតម្លៃពីរ 'បាទ' ឬ 'ទេ' ប្រសិនបើតម្លៃត្រូវបានកំណត់ទៅ 'បាទ' បន្ទាប់មកអ្នកញែក បញ្ចប់ភ្លាមៗ ដរាបណាលក្ខខណ្ឌសាកល្បងពេញចិត្តសម្រាប់សារដែលត្រូវប្រតិបត្តិ។

ដើម្បីយល់ពីបញ្ហានេះ ឧបមាថាប្រសិនបើនៅក្នុងការបញ្ចូលរបស់យើងដំណើរការលក្ខខណ្ឌជម្មើសជំនួស

xsl:choose មានមូលហេតុជាច្រើនសម្រាប់លក្ខខណ្ឌផ្សេងៗគ្នាដែលត្រូវបានសាកល្បងនៅខាងក្នុង @test attribute នៃ xsl:នៅពេលដែលធាតុ លក្ខខណ្ឌសាកល្បងដែលក្លាយជាការពិតដំបូងក្នុងចំណោម xsl:when នោះនឹងត្រូវបានដំណើរការ។ ដំបូង ហើយមាន 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:ចម្លងដំណើរការលើធាតុបរិបទ ពោលគឺប្រសិនបើនោះជា node នោះវានឹងចម្លងថ្នាំងបរិបទទៅថ្នាំងដែលទើបបង្កើតថ្មី ហើយវានឹងមិនចម្លងកុមារទេ។ ថ្នាំងបរិបទ។ ព្រោះហេតុនេះហើយ ទើបហៅថា ច្បាប់ចម្លងរាក់។ មិនដូច xsl:copy-of element ទេ xsl:copy មិនមាន the@select attribute។

នៅក្នុងកូដខាងក្រោម ធាតុបរិបទត្រូវបានចម្លងទៅ output & ធាតុកុមារទាំងអស់ត្រូវបានគេហៅថា & ចម្លងដោយ xsl:apply-template recursively។

node()

អូសទៅកំពូល