xslt tutorial xslt transformations elements with examples
Овај водич објашњава шта је КССЛТ, његове трансформације, елементи и употреба са примерима. Такође покрива значај КСПатх-а за развијање КССЛТ конверзијског кода:
Термин „КССЛТ“ генерише се комбиновањем две речи, тј. „КССЛ“ и „Т“, „КССЛ“ је кратки облик „Прошириви језик табеле“, а „Т“ је кратки облик „Трансформације“.
Дакле, у основи, КССЛТ је језик за трансформацију који се користи за трансформисање / претварање изворних КСМЛ докумената у КСМЛ документе или у друге формате као што су ХТМЛ, ПДФ помоћу КССЛ-ФО (Обликовање објеката) итд.
Шта ћете научити:
Увод у КССЛТ
Трансформација се дешава уз помоћ КССЛТ процесора (попут Сакон-а, Ксалан-а). Овај КССЛТ процесор узима један или више КСМЛ докумената као извор са једном КССЛТ датотеком која садржи КССЛТ код записан у себи, а резултати / излазни документи ће се генерисати касније као што је приказано на доњем дијаграму.
КССЛТ процесор рашчлањује изворне КСМЛ документе помоћу Кс-Патх за навигацију кроз различите изворне елементе почев од основног елемента до краја докумената.
Препоручено читање => Све о чему треба да знате Кс-Патх
КССЛТ трансформација
За започињање трансформације потребан нам је један КСМЛ документ на којем ће се покретати КССЛТ код, сама датотека КССЛТ кода и алат или софтвер који има КССЛТ процесор (у сврхе учења можете да користите било коју бесплатну или пробну верзију софтвера).
# 1) КСМЛ код
Испод је изворни КСМЛ код на којем ће се покретати КССЛТ код.
Назив документа: Боокс.кмл
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) КССЛТ код
Испод је КССЛТ код на основу којег ће се покретати горе наведени КСМЛ документ.
Назив документа: Боокс.ксл
Books:-
Book ID Book Name Author Name Publisher Price Edition
# 3) Резултат / излазни код
Код у наставку биће произведен након употребе КССЛТ кода у горе наведеном КСМЛ документу.
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 | Референца програмера КССЛТ | Мицхаел Каи | Врок | 40 долара | 4тх |
3741122298 | Хеад Фирст Јава | Катхи сиерра | О'реилли | 19 долара | 1ст |
9987436700 | СКЛ Комплетна референца | Јамес Р. Грофф | МцГрав-Хилл | 45 долара | 3. |
КССЛТ елементи
Да бисмо разумели горњи КССЛТ код и он функционише, прво морамо да разумемо различите КССЛТ елементе и њихове атрибуте.
# 1) ИЛИ
Сваки КССЛТ код мора започети основним елементом еитхерор
Атрибути:
- @кмлнс: ксл: Повезује КССЛТ документ са КССЛТ стандардом.
- @версион: Дефинише верзију КССЛТ кода за парсер.
#два)
Ова декларација дефинише скуп правила која се примењују за обраду или трансформацију изабраног улазног елемента изворног документа у дефинисана правила циљног елемента излазних докумената.
У основи су доступне две врсте шаблона према њиховим атрибутима:
(и) Именовани образац: Када елемент ксл: темплате садржи атрибут @наме, то се назива Намед Темплате.
Именоване предлошке позива елемент ксл: цалл-темплате.
(ии) Шаблон меча: Елемент ксл: темплате садржи атрибут @матцх који садржи одговарајући образац или КСПатх примењен на улазним чворовима.
Предлошке за подударање позива елемент ксл: аппли-темплате.
ксл: елемент предлошка мора имати атрибут @ матцх или @наме атрибут или обоје. Елемент ксл: темплате који нема атрибут подударања не сме имати атрибут начина и атрибут приоритета.
Препишимо горњи КССЛТ (
до) КССЛТ код заснован на Предлошку за подударање са. Погледајте испод измењени код означен жутом и сивом бојом, произвешће исти горњи излазни резултат.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Погледајте снимак екрана за истакнуто подручје:
б) КССЛТ код заснован на Именованом предлошку са. Погледајте испод измењени код означен жутом и сивом бојом, произвешће исти горњи излазни резултат.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Погледајте снимак екрана за истакнуто подручје:
# 3)
Процесор ће пронаћи и применити све предлошке који имају КСПатх дефинисан у атрибуту @селецт.
Атрибут @моде се такође користи ако желимо да дамо више од једног начина излаза са истим улазним садржајем.
# 4)
Процесор ће упутити позив предлошцима који имају вредност унутар атрибута @наме (обавезно).
елемент се користи за прослеђивање параметара у образац.
испитивање базе података питања и одговори
# 5)
Наведите вредност низа / текста у вези са изразом КСПатх дефинисаним у атрибуту @селецт, како је дефинисано у горњем коду.
Ово ће дати вредност имену књиге.
# 6): Понављање
Ово ће обрадити упутства за сваки скуп чворова (кпатх дефинисан у @селецт (потребан) атрибут) у сортираној секвенци.
Горњи код значи за сваки скуп чворова продавнице / књиге:
/ продавница / књига (1)
/ продавница / књига (2)
/ продавница / књига (3)
може се користити и као подређено стање ксл: фор-еацх за дефинисање редоследа сортирања.
# 7): Условна обрада
Кссл: иф упутства ће се обрадити само ако је логичка вредност атрибута @тест тачна, у супротном се наредба неће проценити и вратит ће се празна секвенца.
2'> Condition True: Count of books are more than two.
Резултат: Услов тачан: Број књига је више од две.
Овде је цоунт () унапред дефинисана функција.
# 8): Алтернативна обрада услова
ксл: селецт има више случајева за различите услове који се тестирају унутар атрибута @тест атрибута ксл: вхен, услов теста који се прво остварује међу свим ксл: вхен, који ће се прво обрадити и постоје опционални клс: иначе елемент, тако да ако се ниједан од условних тестова не оствари, тада ће се узети у обзир овај ксл: иначе.
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)
ксл: цопи ради на ставци контекста, тј. ако је то чвор, он ће копирати чвор контекста у ново генерисани чвор и то неће копирати подређене чворове контекста. Из овог разлога ово се назива плитка копија. За разлику од ксл: цопи-оф елемент, ксл: цопи нема атрибут @ селецт.
У доњем коду, контекстне ставке се копирају на излаз, а све подређене ставке ксл: аппли-темплате рекурзивно позива и копира.
ноде () | @ * Рекурзивно стоји за све чворове и све њихове атрибуте.
Резултат: Ово ће копирати све чворове и атрибуте изворног документа рекурзивно у излазни документ, тј. Створиће тачну копију изворног документа.
# 10)
ксл: цопи-оф ће копирати секвенцу чворова са свом његовом подређеном јединицом и атрибуте подразумевано рекурзивно, због ове природе ово се назива и дубинским копирањем. Атрибут @селецт је потребан за процену КСПатх-а.
Резултат: Ово ће копирати све чворове и атрибуте изворног документа рекурзивно у излазни документ, тј. Створиће тачну копију изворног документа.
Означава копију тренутног чвора и тренутног атрибута.
#Једанаест)
Овај елемент се користи за писање коментара на циљни резултат, сав текстуални садржај који се налази уз ову ознаку биће одштампан као коментарисани излаз.
Ово ће се одштампати за излаз као чвор коментара.
Резултат:
# 12)
Ово ће генерисати чвор текста у документу резултата, вредност унутар ксл: текст ће се исписати као низ за излаз.
Ово је
ред текста.
Излаз:
Ово је
ред текста.
# 13)
Ово ће генерисати елемент резултатског документа са именом наведеним у његовом атрибуту @наме. Атрибут наме је обавезни атрибут.
Резултат: 5350192956
# 14)
Ово ће генерисати атрибут свом надређеном елементу у резултатском документу. Име атрибута је дефинисано атрибутом наме, а вредност атрибута израчунава се КСПатх-ом споменутим у атрибуту селецт као што је дато у доњем коду. Атрибут наме је обавезни атрибут.
Резултат:
# петнаест)
Овај елемент ће сортирати изабрани чвор у низу у складу с тим у узлазном или силазном смеру. Чвор или КСПатх дати су путем атрибута @селецт, а смер сортирања дефинисан је атрибутом @ордер.
У доњем коду ћемо добити све књиге према абецедном реду према називу књиге.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Погледајте овај снимак екрана за истакнуто подручје:
Резултат: Доња листа садржи називе књига по абецедном реду, тј. Растућим редоследом.
Књиге:
ИД књиге | Име књиге | Име аутора | Издавач | Цена | Едитион |
---|---|---|---|---|---|
3741122298 | Хеад Фирст Јава | Катхи сиерра | О'реилли | 19 долара | 1ст |
9987436700 | СКЛ Комплетна референца | Јамес Р. Грофф | МцГрав-Хилл | 45 долара | 3. |
5350192956 | Референца програмера КССЛТ | Мицхаел Каи | Врок | 40 долара | 4тх |
# 16)
Овај елемент декларише променљиву која у себи садржи вредност. Варијабла може бити глобална или локална променљива. Име променљиве дефинисано је атрибутом @наме, а вредност коју ће ова променљива садржати дефинисана је атрибутом @селецт.
Приступ глобалној променљивој је глобални, тј. Променљиве се могу позвати у било ком елементу и остати доступне у табели стилова.
Да бисмо дефинисали глобалну променљиву, само треба да прогласимо да је поред основног елемента табеле стилова, као што је приказано у доњем коду означено жуто, променљива „СецондБоок“ глобална променљива и да она има име друге књиге.
Приступ локалне променљиве је локални елементу у коме је дефинисана, тј. Та променљива не би била доступна изван елемента у коме је дефинисана, као што је приказано у доњем коду који је сиво истакнут, променљива „прва књига“ је локална променљива и она садржи име прве књиге.
Да бисте позвали било коју глобалну променљиву на локалну променљиву, симбол долара ($) користи се пре имена променљиве, као што је приказано доле жуто истакнуто $ .
First Book Name: Second Book Name:
Погледајте снимак екрана за истакнуто подручје:
Резултат:
имплементација алгоритма најкраћег пута дијкстра у јави
Назив прве књиге: КССЛТ Программер’с Референце
Име друге књиге: Хеад Фирст Јава
# 17)
Овај елемент се користи за декларисање кључева за подударање вредности обрасца са тим кључем.
Наме је добављач тог кључа помоћу атрибута @наме („ гет-публисхер “), Који се касније користи унутар функције кеи (). Атрибут @матцх је обезбеђен за индексирање улазног чвора помоћу израза КСПатх („ књига “), Као на доле означеном жутом бојом, @матцх се користи за индексирање свих књига доступних у продавници.
У односу на атрибут @матцх, користи се атрибут @усе, који проглашава чвор да добије вредност за тај кључ путем израза КСПатх („издавач“).
Сада, претпоставимо, ако су нам потребни детаљи књиге коју објављује само издавач „Врок“, онда ту вредност можемо лако добити путем елемента ксл: кеи прављењем пара кључ-вредност.
кључ („гет-публисхер“, „Врок“) Кеи () узима два параметра, прво је име кључа, што је у овом случају „гет-публисхер“, друго је вредност низа која треба да претражује, а у нашем случају је „Врок“.
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
Резултат / ХТМЛ приказ:
Књиге:
ИД књиге | Име књиге | Име аутора | Издавач | Цена | Едитион |
---|---|---|---|---|---|
5350192956 | Референца програмера КССЛТ | Мицхаел Каи | Врок | 40 долара | 4тх |
# 18)
Овај елемент се користи у сврхе отклањања грешака у развоју КССЛТ-а. Елемент даје свој излаз на стандардни излазни екран апликације.
Атрибут @терминате користи се са две вредности или „да“ или „не“, ако је вредност постављена на „да“, парсер се одмах прекида чим се услов теста задовољи да би се порука извршила.
Да бисмо то разумели, претпоставимо ако се у нашем улазном документу елемент цена случајно испразни као у доњем коду, тада би обрада требала престати одмах чим процесор наиђе на празан елемент цене, што се лако може постићи коришћењем ксл: порука унутар иф тест услова као у доњем КССЛТ коду.
Упозорење о отклањању грешака приказује стандардни екран апликације: Обрада је завршена ксл: порука у 21. реду.
Унесите КСМЛ код:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Погледајте снимак екрана за истакнуто подручје:
КССЛТ код:
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) &
елемент дефинише параметар предлошку ако је дефинисан изнутра. Може се дефинисати изнутра као глобални параметар или изнутра као локални параметар за тај образац.
Вриједност се просљеђује / испоручује када се предложак позове биор.

преноси вредност параметра дефинисаног унутар шаблона. Атрибут попут @наме садржи име параметра који треба да се подудара са атрибутом @наме елемента. Атрибут @Селецт користи се за постављање вредности тог параметра.

За дохваћање вредности параметра користи се исти као променљиви знак долара ($).

Изворни КСМЛ код:
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
КССЛТ код:
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