- 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' қысқаша түрі болып табылады ' Extensible Stylesheet Language' және 'T' — "Трансформация" сөзінің қысқаша түрі.
Сонымен, XSLT бастапқы XML құжаттарын XML құжаттарына немесе басқа пішімдерге түрлендіру/түрлендіру үшін пайдаланылатын түрлендіру тілі болып табылады. HTML, PDF ретінде XSL-FO (нысандарды пішімдеу) арқылы және т.б.
XSLT-ке кіріспе
Трансформация XSLT процессорының көмегімен жүзеге асады ( Саксон, Халан сияқты). Бұл XSLT процессорында XSLT коды жазылған бір XSLT файлы бар бір немесе бірнеше XML құжатын көз ретінде қабылдайды және нәтиже/шығыс құжаттары төмендегі диаграммада көрсетілгендей кейінірек жасалады.
XSLT процессоры түбір элементінен бастап құжаттардың соңына дейін әртүрлі бастапқы элементтерді шарлау үшін X-Path көмегімен бастапқы XML құжаттарын талдайды.
X-Path
XSLT трансформациясы туралы білуіңіз керек барлық нәрсе
Трансформацияны бастау үшін бізге XSLT коды іске қосылатын бір XML құжаты қажет. XSLT код файлының өзі және XSLT процессоры бар құрал немесе бағдарламалық құрал (Сіз бағдарламалық құралдың кез келген тегін нұсқасын немесе сынақ нұсқасын пайдалана аласыз.Төмендегі кодтағыдай баға элементі кездейсоқ бос болып қалады, содан кейін процессор бос баға элементімен кездескенде, өңдеу дереу тоқтатылуы керек, оған төмендегідей if сынақ шартының ішінде xsl:message арқылы оңай қол жеткізуге болады. XSLT коды.
Түзеткіш ескертуі қолданбаның стандартты экранында көрсетіледі: Өңдеу 21-жолда xsl:message арқылы аяқталды.
XML кодын енгізіңіз:
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 коды
Төменде XSLT коды іске қосылатын бастапқы XML коды берілген.
Файл атауы: 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 коды
Төменде жоғарыдағы XML құжатында жұмыс істейтін XSLT коды берілген.
Файл атауы: 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) Веб-шолғышта нәтижені/шығаруды көру
Кітаптар:
Кітап идентификаторы | Кітап аты | Автор аты | Баспагер | Бағасы | Басылым |
---|---|---|---|---|---|
5350192956 | XSLT бағдарламашысының анықтамасы | Майкл Кей | Wrox | 40$ | 4-ші |
3741122298 | Бірінші Java басшысы | Кэти Сьерра | O'reilly | $19 | 1-ші |
9987436700 | SQL Толық анықтама | Джеймс Р. Грофф | McGraw-Hill | $45 | 3-ші |
XSLT элементтері
Жоғарыда айтылғандарды түсіну үшін XSLT коды және оның жұмысы үшін біз алдымен әртүрлі XSLT элементтерін және олардың атрибуттарын түсінуіміз керек.
#1) НЕМЕСЕ
Әр XSLT коды не 2 түбір элементінен басталуы керек> немесе
Атрибуттар:
- @xmlns:xsl: XSLT құжатын XSLT стандартымен қосады.
- @version: XSLT кодының нұсқасын келесіге анықтайдыталдаушы.
#2)
Бұл мәлімдеме бастапқы құжаттың таңдалған кіріс элементін шығыс құжаттарының анықталған мақсатты элемент ережелеріне өңдеу немесе түрлендіру үшін қолданылатын ережелер жинағын анықтайды. .
Негізінде, үлгілердің екі түрі олардың атрибуттары бойынша қол жетімді:
(i) Атаулы үлгі: xsl: үлгі элементі болғанда @name төлсипатын қамтиды, содан кейін ол Атаулы үлгі деп аталады.
Аты аталған үлгілер xsl:call-template элементі арқылы шақырылады.
(ii) Сәйкес үлгі: xsl:template элементінде сәйкес үлгіні немесе кіріс түйіндерінде қолданылатын XPath бар @match төлсипаты бар.
Сәйкестік үлгілері xsl:apply-template элементі арқылы шақырылады.
xsl :template элементінде @match төлсипаты немесе @name төлсипаты немесе екеуі де болуы керек. Сәйкестік атрибуты жоқ xsl:template элементінде режим атрибуты және басымдық атрибуты болмауы керек.
Жоғарыдағы XSLT(
Books:-
Book ID | Book Name | Author Name | Publisher | Price | Edition |
---|
Бөлектелген аймақ үшін скриншотты қараңыз:
b) XSLT коды бар атаулы үлгіге негізделген. Төменде қараңыз сары & сұр түсті бөлектелген өзгертілген код, ол жоғарыдағыдай нәтижені береді.
Books:-
Book ID | Book Name | Author Name | Publisher | Price | Edition |
---|
Бөлектелген үшін скриншотты қараңызаймақ:
#3)
Процессор @select атрибутында анықталған XPath бар барлық үлгілерді табады және қолданады.
@mode атрибуты, егер біз бірдей кіріс мазмұнымен шығарудың бірнеше жолын бергіміз келсе де қолданылады.
#4)
Процессор @name атрибутының ішіндегі мәні бар үлгілерге қоңырау шалады (міндетті).
элементі үлгіге параметрлерді жіберу үшін пайдаланылады.
#5)
Жоғарыдағы кодта анықталғандай @select төлсипатында анықталған XPath өрнегіне қатысты жол/мәтін мәнін беріңіз.
Бұл мән береді. кітап атауы.
№6): Қайталау
Бұл сұрыпталған реттілікте түйіндердің әрбір жинағы (xpath @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.
Нәтиже: Шарт Рас: Кітаптар саны екіден көп.
Мұнда count() — алдын ала анықталған функция.
#8) :XPath бағалауы үшін төлсипат қажет.
Нәтиже: Бұл бастапқы құжаттың барлық түйіндері мен атрибуттарын рекурсивті түрде шығыс құжатқа көшіреді, яғни дәл көшірмені жасайды. бастапқы құжаттың.
Ағымдағы түйін мен ағымдағы төлсипаттың көшірмесін білдіреді.
#11)
Бұл элемент мақсатқа түсініктеме жазу үшін пайдаланылады. нәтижесінде осы тегтің жағында орналасқан кез келген мәтін мазмұны түсініктеме берілген шығыс ретінде басып шығарылады.
Бұл түсініктеме түйіні ретінде шығару үшін басып шығарылады.
Нәтиже:
#12)
Бұл нәтиже құжатына мәтіндік түйін жасайды, xsl:text ішіндегі мән шығару үшін жол ретінде басып шығарылады. .
Бұл
мәтіндік жол.
Шығару:
Бұл
мәтіндік жол.
#13)
Бұл нәтиже құжатының элементін жасайды @name атрибутында аталған атау. Name атрибуты қажетті атрибут болып табылады.
Нәтиже: 5350192956
#14)
Бұл нәтиже құжатындағы басты элементінің төлсипатын жасайды. Төлсипаттың аты name төлсипаты арқылы анықталады және төлсипаттың мәні төмендегі кодта берілген таңдау төлсипатында аталған XPath арқылы есептеледі. Name төлсипаты қажетті төлсипат болып табылады.
Нәтиже:
#15)
Бұл элемент сұрыптайдытаңдалған түйінді сәйкесінше өсу немесе кему бағытында реттілікпен. Түйін немесе XPath @select атрибуты арқылы беріледі және сұрыптау бағыты @order атрибуты арқылы анықталады.
Төмендегі кодта біз кітап атауына сәйкес барлық кітаптар тізімін алфавиттік ретпен аламыз.
Books:-
Book ID | Book Name | Author Name | Publisher | Price | Edition |
---|---|---|---|---|---|
Бөлектелген аймақ үшін мына скриншотты қараңыз:
Нәтиже: Төмендегі тізімде кітап атаулары бар алфавиттік ретпен, яғни өсу ретімен.
Кітаптар:
Кітап идентификаторы | Кітап аты | Автор аты | Баспагер | Бағасы | Басылым |
---|---|---|---|---|---|
3741122298 | Бірінші Java басшысы | Кэти Сьерра | О 'reilly | $19 | 1-ші |
9987436700 | SQL Толық анықтама | Джеймс Р. Гроф | McGraw-Hill | 45$ | 3-ші |
5350192956 | XSLT бағдарламашысының анықтамасы | Майкл Кэй | Wrox | $40 | 4-ші |
#16)
Бұл элемент жариялайды онда мәнді ұстайтын айнымалы. Айнымалы жаһандық айнымалы немесе жергілікті айнымалы болуы мүмкін. Айнымалының атауы @name атрибуты арқылы анықталады және осы айнымалыға ие болатын мән @select төлсипаты арқылы анықталады.
Жаһандық айнымалыға қол жеткізу жаһандық, яғни айнымалыларды кез келген ішінде шақыруға болады. элементі және қол жетімді болып қаладыстильдер кестесінің ішінде.
Жаһандық айнымалы мәнді анықтау үшін сары түспен бөлектелген төмендегі кодта көрсетілгендей стильдер кестесінің түбір элементінің қасында "Екінші кітап" айнымалысы жаһандық айнымалы екенін жариялауымыз керек. және ол екінші кітаптың атын сақтайды.
Жергілікті айнымалыға қол жеткізу ол анықталған элементке локалды, яғни бұл айнымалыға көрсетілгендей ол анықталған элементтен тыс қол жетімді болмайды. сұр түспен бөлектелген төмендегі код, 'бірінші кітап' айнымалысы жергілікті айнымалы және ол бірінші кітаптың атын сақтайды.
Жергілікті айнымалыға ғаламдық айнымалыға қоңырау шалу үшін Dollar таңбасы ($) айнымалы атауының алдында пайдаланылады, төменде сары түспен бөлектелген $ көрсетілгендей .
First Book Name: Second Book Name:
Бөлектелген аймақ үшін скриншотты қараңыз:
Нәтиже:
Бірінші кітап атауы: XSLT бағдарламашысының анықтамасы
Екінші кітап атауы: Бірінші Java бағдарламасының басшысы
#17)
Бұл элемент сол белгілі бір кілтке сәйкес үлгі мәндері үшін кілттерді жариялау үшін пайдаланылады.
Атау @name атрибуты бойынша сол кілттің провайдері болып табылады(“ get-publisher “), ол кейінірек key() функциясының ішінде пайдаланылады. @match атрибуты XPath өрнектері арқылы индекс енгізу түйініне беріледі(“ кітап “), төменде сары түспен ерекшеленген @match дүкенде қолжетімді барлық кітаптарды индекстеу үшін пайдаланылады.
Қатысты@match төлсипаты, @use төлсипаты пайдаланылады, ол XPath өрнегі («жариялаушы») арқылы сол кілттің мәнін алу үшін түйінді жариялайды.
Енді, егер делік бізге тек 'Wrox' баспагері басып шығаратын кітап туралы мәліметтер қажет болса, біз кілт-мән жұбын жасау арқылы бұл мәнді xsl:key элементі арқылы оңай ала аламыз.
key('get- publisher', 'Wrox') Key() екі параметрді қабылдайды, біріншіден кілттің аты, бұл жағдайда ол 'get-publisher', екіншіден іздеу керек жол мәні, ол біздің жағдайда '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 көрінісі:
Кітаптар:
Кітап идентификаторы | Кітап аты | Автордың аты-жөні | Баспагер | Бағасы | Басылым |
---|---|---|---|---|---|
5350192956 | XSLT бағдарламашысының анықтамасы | Майкл Кей | Wrox | 40$ | 4-ші |
№18)
Бұл элемент келесіде жөндеу мақсатында пайдаланылады XSLT әзірлеу. Элемент өз шығысын қолданбаның стандартты шығыс экранына береді.
@terminate атрибуты екі мәнмен немесе "иә" немесе "жоқ" пайдаланылады, егер мән "иә" мәніне орнатылса, талдаушы Хабарламаның орындалуы үшін сынақ шарты орындалғаннан кейін бірден тоқтатылады.
Мұны түсіну үшін, егер біздің енгізуімізде болса делік.Баламалы шарттарды өңдеу
xsl:choose xsl:when элементтерінің @test атрибуты ішінде тексерілетін әртүрлі жағдайлардың бірнеше себептері бар, барлық xsl:when арасында бірінші орында болатын сынақ шарты өңделетін болады. бірінші және қосымша xls:otherwise элементі бар, сондықтан шарт сынақтарының ешқайсысы орындалмаса, бұл xsl:otherwise қарастырылады.
Condition True: Count of book is one. Condition True: Count of book is two. Condition True: Count of book is three. No condition match.
Нәтиже: Шарт True: саны кітап үш.
#9)
xsl:copy мәтінмәндік элементте жұмыс істейді, яғни бұл түйін болса, контекстік түйінді жаңадан жасалған түйінге көшіреді және бұл еншілестерді көшірмейді. контекстік түйін. Осы себепті бұл таяз көшірме деп аталады. xsl:copy-of элементінен айырмашылығы, xsl:copy файлында@select төлсипаты жоқ.
Төмендегі кодта мәтінмән элементтері & барлық балалар элементтері деп аталады & AMP; xsl:apply-template арқылы рекурсивті түрде көшірілген.
түйін()