XSLT kennsluefni - XSLT umbreytingar & amp; Frumefni með dæmum

Þetta kennsluefni útskýrir hvað er XSLT, umbreytingar þess, þættir og notkun með dæmi. Nær einnig yfir mikilvægi XPath til að þróa XSLT viðskiptakóða:

Hugtakið „XSLT“ er búið til með því að sameina tvö orð, þ.e. 'XSL' og 'T', 'XSL' er stutt mynd af ' Extensible Stylesheet Language' og 'T' er stutt mynd af 'Transformation'.

Svo, í grundvallaratriðum, er XSLT umbreytingartungumál sem er notað til að umbreyta/umbreyta uppruna XML skjölum í XML skjöl eða í önnur snið, ss. sem HTML, PDF með því að nota XSL-FO (Formating Objects), osfrv.

Inngangur að XSLT

Umbreyting á sér stað með hjálp XSLT örgjörvans ( eins og Saxon, Xalan). Þessi XSLT örgjörvi tekur eitt eða fleiri XML skjöl sem uppruna með einni XSLT skrá sem inniheldur XSLT kóða skrifaðan í hana og niðurstöðu/úttaksskjölin verða mynduð síðar eins og sýnt er á skýringarmyndinni hér að neðan.

XSLT örgjörvinn flokkar uppruna XML skjölin með því að nota X-Path til að fletta yfir mismunandi frumþætti frá rótarhluta til loka skjala.

Allt sem þú þarft að vita um X-Path

XSLT umbreyting

Til að hefja umbreytingu þurfum við eitt XML skjal sem XSLT kóðinn mun keyra á, XSLT kóða skráin sjálf og tólið eða hugbúnaðinn með XSLT örgjörva (Þú getur notað hvaða ókeypis útgáfu eða prufuútgáfu af hugbúnaðinum sem er fyrirskjalfestu að verðþátturinn tæmist óvart eins og í kóðanum hér að neðan, þá ætti vinnslan að hætta strax um leið og örgjörvinn rekst á tóma verðþáttinn sem auðvelt er að ná með því að nota xsl:skilaboð inni í if prófunarskilyrðinu eins og hér að neðan XSLT kóði.

Kembiforritaviðvörun er sýnd af staðalskjá forritsins: Vinnslu hætt með xsl:skilaboðum í línu 21.

Skip inn XML kóða:

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

Sjáðu skjámynd fyrir auðkennt svæði:

XSLT kóða:

Books:-

Terminating: price element is empty.
Book IDBook NameAuthor NamePublisherPriceEdition

Sjáðu skjámynd fyrir auðkennt svæði:

Niðurstaða: Vinsamlegast athugaðu að um leið og þáttarinn rekst á tóma verðmiðann, það stöðvar vinnsluna strax vegna þess að lokamerkin á , og myndu ekki koma í lok skráarinnar.

Books:-

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

Sjáðu skjámynd fyrir auðkennt svæði:

#19) &

þáttur skilgreinir færibreytuna fyrir sniðmát ef hún er skilgreind inni í . Það er annað hvort hægt að skilgreina það inni sem alþjóðlegu færibreytuna eða inni sem staðbundna færibreytuna fyrir það sniðmát.

Gildi breytunnar er samþykkt/gefin þegar sniðmátið er kallað af eða .

það sendir gildi færibreytunnar sem er skilgreind inni í til sniðmátsins. Eigind eins og @nafn inniheldur nafn færibreytunnar sem ætti að passa við @nafn eigind frumefnisins. @Select eiginleiki er notaður til að stillagildi fyrir þá færibreytu.

Til að sækja gildi færibreytunnar er það sama og breytilegt dollaramerki($) notað.

XML kóða:

   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 kóða:

List of Books Name :-

Book Name:

Sjáðu skjámynd fyrir auðkennda svæðið:

Niðurstaða:

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.

námstilgangur).

#1) XML-kóði

Hér að neðan er XML-kóðinn sem XSLT-kóði mun keyra á.

Skráarnafn: 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-kóði

Hér að neðan er XSLT-kóði byggður á sem mun keyra á ofangreindu XML-skjali.

Skráarnafn: Books.xsl

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

#3) Niðurstaða / úttakskóði

Kóðinn hér að neðan verður framleiddur eftir að XSLT kóðann er notaður á ofangreindu XML skjalinu.

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) Skoða niðurstöðu/úttak í vafra

Bækur:

Bókakenni Bókarheiti Nafn höfundar Útgefandi Verð Útgáfa
5350192956 XSLT forritara tilvísun Michael Kay Wrox $40 4.
3741122298 Head First Java Kathy Sierra O'reilly $19 1.
9987436700 SQL The Complete Reference James R. Groff McGraw-Hill $45 3rd

XSLT Elements

Til að skilja ofangreint XSLT kóða og virkni hans, við þurfum fyrst að skilja mismunandi XSLT þætti og eiginleika þeirra.

#1) EÐA

Sérhver XSLT kóða verður að byrja á rótarhlutanum annað hvort eða

Eiginleikar:

  • @xmlns:xsl: Tengir XSLT skjal við XSLT staðal.
  • @version: Skilgreinir útgáfu XSLT kóðans fyrirparser.

#2)

Þessi yfirlýsing skilgreinir mengi reglna sem notaðar eru til að vinna úr eða umbreyta valinn inntaksþátt frumskjalsins í skilgreindar markþáttareglur úttaksskjalanna .

Í grundvallaratriðum eru tvær tegundir af sniðmátum tiltækar samkvæmt eiginleikum þeirra:

(i) Nafnt sniðmát: Þegar xsl: sniðmátsþátturinn inniheldur @name eigindina þá er þetta kallað Named Template.

Nafngreind sniðmát eru kölluð af xsl:call-template frumefni.

(ii) Match Template: xsl:template einingin inniheldur @match eigindina sem inniheldur samsvarandi mynstur eða XPath notað á inntakshnútunum.

Match sniðmát eru kölluð af xsl:apply-template einingunni.

xsl :sniðmátsþáttur verður að hafa annaðhvort@samsvörun eigind eða @nafn eigind eða bæði. Xsl:template frumefni sem hefur engan samsvörunareigind má ekki hafa neina hameiginleika og enga forgangseigind.

Skrifum aftur ofangreint XSLT(

a) XSLT kóða byggt á Match Template með . Sjá hér að neðan gult & amp; grár auðkenndur breyttur kóði, mun hann framleiða sömu úttaksniðurstöðu hér að ofan.

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

Sjáðu skjámyndina fyrir auðkennt svæði:

b) XSLT kóða byggt á nafngerðu sniðmáti með . Sjá hér að neðan gult & amp; grár auðkenndur breyttur kóði, mun hann framleiða sömu úttaksniðurstöðu hér að ofan.

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

Sjáðu skjámyndina fyrir auðkenndansvæði:

#3)

Gjörvinn mun finna og nota öll sniðmát sem hafa XPath skilgreint í @select eigindinni.

@mode eigindin er einnig notuð ef við viljum gefa fleiri en eina leið til úttaks með sama inntaksinnihaldi.

#4)

Gjörvinn mun hringja í sniðmátin sem hafa gildi inni í @name eigindinni (áskilið).

frumefni er notað til að senda færibreytur í sniðmátið.

#5)

Gefðu upp streng/textagildi varðandi XPath tjáningu sem er skilgreind í @select eigindinni, eins og skilgreint er í kóðanum hér að ofan.

Þetta gefur gildi nafn bókarinnar.

#6) : Endurtekning

Þetta mun vinna úr leiðbeiningunum fyrir hvert sett af hnútum (xpath skilgreindur í @velja (áskilið) eigindina) í flokkuðu röðinni.

Kóðinn hér að ofan þýðir fyrir hvert hnútsett af verslun/bók þýðir:

/verslun/bók[1]

/verslun/bók[2 ]

/store/book[3]

einnig hægt að nota sem undirlag xsl:for-each til að skilgreina röð flokkunar.

#7) : Skilyrt vinnsla

Xsl:if leiðbeiningarnar munu aðeins vinna ef Boolean gildi @test eigindarinnar verður satt, annars verður leiðbeiningin ekki metin og tóma röðinni er skilað.

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

Niðurstaða: Skilyrði Satt: Fjöldi bóka eru fleiri en tvær.

Hér er count() fyrirframskilgreint fall.

#8) :eigind er krafist til að meta XPath.
 

Niðurstaða: Þetta mun afrita alla hnúta og eiginleika upprunaskjalsins endurkvæmt í úttaksskjalið, þ.e. það mun búa til nákvæmt afrit upprunaskjalsins.

 

Stendur fyrir afrit af núverandi hnút og núverandi eigind.

#11)

Þessi þáttur er notaður til að skrifa athugasemd við markið afleiðing, allt textaefni sem er hlið við þetta merki verður prentað sem úttak með athugasemdum.

Þetta verður prentað sem úttak sem athugasemdahnút.

Niðurstaða:

#12)

Þetta mun búa til textahnút í niðurstöðuskjalið, gildið inni í xsl:textanum verður prentað sem strengur til úttaks .

Þetta er

textalína.

Úttak:

Þetta er

textalína.

#13)

Þetta mun búa til stak í niðurstöðuskjalinu með nafnið sem nefnt er í @name eigindinni. Heiti eigind er nauðsynleg eigind.

 

Niðurstaða: 5350192956

#14)

Þetta mun búa til eigind fyrir móðurþáttinn í niðurstöðuskjalinu. Nafn eigindarinnar er skilgreint af nafneigindinni og gildi eigindarinnar er reiknað út af XPath sem getið er um í valeigindinni eins og gefið er upp í kóðanum hér að neðan. Heiti eigind er nauðsynleg eigind.

 

Niðurstaða:

#15)

Þessi þáttur mun raðavalinn hnút í röð í samræmi við það í hækkandi eða lækkandi átt. Hnúturinn eða XPath er gefinn í gegnum @select eigind og flokkunaráttin er skilgreind af @order eigindinni.

Í kóðanum hér að neðan munum við fá allar bókalistann samkvæmt nafni bókarinnar í stafrófsröð.

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

Sjáðu þessa skjámynd fyrir auðkennda svæðið:

Niðurstaða: Listinn hér að neðan inniheldur bókanöfnin í stafrófsröð þ.e.a.s. í hækkandi röð.

Bækur:

Bókakenni Bókarheiti Nafn höfundar Útgefandi Verð Útgáfa
3741122298 Head First Java Kathy Sierra O 'reilly $19 1.
9987436700 SQL The Complete Reference James R. Groff McGraw-Hill $45 3rd
5350192956 XSLT forritara tilvísun Michael Kay Wrox $40 4.

#16)

Þessi þáttur lýsir breyta sem hefur gildi í henni. Breyta gæti verið alþjóðleg breyta eða staðbundin breyta. Nafn breytunnar er skilgreint af @name eigindinni og gildið sem þessi breyta mun halda er skilgreint af @select eigindinni.

Aðgangur alþjóðlegu breytunnar er alþjóðlegt, þ.e. hægt er að kalla breyturnar innan hvers kyns þáttur og vera aðgengilegurinnan stílblaðsins.

Til að skilgreina alþjóðlega breytu þurfum við bara að lýsa því yfir að við hliðina á rótarhluta stílblaðsins eins og sýnt er í kóðanum hér að neðan með gula auðkenndu, er breytan 'SecondBook' alþjóðlega breytan og það heldur nafni annarar bókarinnar.

Aðgangur staðbundinnar breytu er staðbundinn að frumefninu sem hún er skilgreind í, þ.e.a.s. sú breyta væri ekki aðgengileg utan þáttarins sem hún er skilgreind í eins og sýnt er í kóðann hér að neðan sem er grár auðkenndur, breytan 'first book' er staðbundin breyta og hún heldur nafni fyrstu bókarinnar.

Til að hringja í annaðhvort alþjóðlegu breytuna í staðbundnu breytuna er Dollar táknið ($) er notað á undan nafni breytunnar, eins og sýnt er hér að neðan með gulu auðkenndu $ .

       First Book Name:    Second Book Name:     

Sjáðu skjámyndina fyrir auðkennda svæðið:

Niðurstaða:

Nafn fyrsta bókar: XSLT forritara tilvísun

Nafn annarrar bókar: Head First Java

#17)

Þessi þáttur er notaður til að lýsa yfir lyklum, fyrir samsvarandi mynsturgildi við þann tiltekna lykil.

Nafn er veitir þess lykils með @name attribute(“ get-publisher “), sem er síðar notað í key() fallinu. @match eiginleiki er veittur fyrir vísitöluinntakshnút með XPath tjáningum(“ bók “), eins og í gulu auðkenndu að neðan er @match notað til að skrá yfir allar bækur sem eru til í versluninni.

Miðað við@passa eigind, @use eigindin er notuð, hún lýsir yfir hnútinn til að fá gildið fyrir þann lykil í gegnum XPath tjáningu(“útgefandi“).

Nú, segjum að ef við þurfum upplýsingar um bókina sem er aðeins gefin út af 'Wrox' útgefanda, þá getum við fengið það gildi auðveldlega í gegnum xsl:key element með því að búa til lykilgildi par.

key('get- publisher', 'Wrox') Key() tekur tvær breytur, fyrst er nafn lykilsins, sem í þessu tilfelli er 'get-publisher', í öðru lagi er strengsgildið sem þarf að leita sem í okkar tilfelli er 'Wrox'.

Books:-

Book IDBook NameAuthor NamePublisherPriceEdition

Sjáðu skjámyndina fyrir auðkennda svæðið:

Niðurstaða:

Books:-

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

Niðurstaða / HTML Skoða:

Bækur:

Bókakenni Bókarheiti Nafn höfundar Útgefandi Verð Útgáfa
5350192956 XSLT forritara tilvísun Michael Kay Wrox $40 4.

#18)

Þessi þáttur er notaður í villuleit í tilgangi XSLT þróun. Einingin gefur úttak sitt á staðlaða úttaksskjá forritsins.

Eigindið @terminate er notað með tveimur gildum annaðhvort 'yes' eða 'no', ef gildið er stillt á 'yes' þá er þátturinn lýkur strax um leið og prófunarskilyrðinu er fullnægt til að skilaboðin verði keyrð.

Til að skilja þetta skulum við gera ráð fyrir að ef við höfum inntak okkarÖnnur skilyrðisvinnsla

xsl:choose hafa margar orsakir fyrir mismunandi skilyrðum sem eru prófuð inni í @test eigindi xsl:when frumefna, prófunarskilyrðið sem rætist fyrst meðal allra xsl:when, sem verður unnið úr fyrst og það eru valfrjáls xls:otherwise þáttur þannig að ef ekkert af skilyrðisprófunum rætist þá verður þetta xsl:otherwise tekið til greina.

  Condition True: Count of book is one.   Condition True: Count of book is two.   Condition True: Count of book is three.   No condition match.  

Niðurstaða: Skilyrði True: Tala af the bókin er þrjú.

#9)

xsl:copy virkar á samhengisatriði þ.e.a.s. ef það er hnútur þá mun það afrita samhengishnútinn yfir á nýmyndaða hnútinn og þetta mun ekki afrita börnin af samhengishnútnum. Vegna þessa er þetta kallað grunnt eintak. Ólíkt xsl:copy-of frumefni, hefur xsl:copy ekki @select eigindina.

Í kóðanum hér að neðan eru samhengisatriðin afrituð í úttak & öll atriði barna heita & afritað af xsl:apply-template endurkvæmt.

hnút()

Skruna á topp