xslt tutorial xslt transformations elements with examples
Този урок обяснява какво е XSLT, неговите трансформации, елементи и употреба с пример. Също така обхваща значението на XPath за разработване на XSLT код за преобразуване:
Терминът „XSLT“ се генерира чрез комбиниране на две думи, т.е. „XSL“ и „T“, „XSL“ е кратката форма на „Разширяем език на стиловите таблици“, а „T“ е кратка форма на „Трансформация“.
И така, по същество XSLT е език за трансформация, който се използва за трансформиране / конвертиране на XML документи в XML документи или в други формати като HTML, PDF чрез XSL-FO (Форматиране на обекти) и т.н.
Какво ще научите:
Въведение в XSLT
Трансформацията се случва с помощта на процесора XSLT (като Saxon, Xalan). Този XSLT процесор приема един или повече XML документи като източник с един XSLT файл, който съдържа XSLT код, записан в него и резултатите / изходните документи ще бъдат генерирани по-късно, както е показано на диаграмата по-долу.
Процесорът XSLT анализира изходните XML документи, като използва X-Path за навигация през различни изходни елементи, започвайки от основния елемент до края на документите.
Препоръчително четене => Всичко, за което трябва да знаете X-Path
XSLT трансформация
За стартиране на трансформацията се нуждаем от един XML документ, на който ще се изпълнява XSLT кодът, самият XSLT кодов файл и инструментът или софтуерът с XSLT процесор (можете да използвате всяка безплатна версия или пробна версия на софтуера за учебни цели).
# 1) XML код
По-долу е изходният XML код, на който ще работи XSLT кодът.
Име на файл: Books.xml
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) XSLT код
По-долу е XSLT кодът, въз основа на който ще работи на горния XML документ.
Име на файл: Books.xsl
Books:-
Book ID Book Name Author Name Publisher Price Edition
# 3) Код за резултат / изход
Кодът по-долу ще бъде създаден след използване на кода XSLT в горния XML документ.
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 | Справочник на програмиста XSLT | Майкъл Кей | Wrox | $ 40 | 4-ти |
3741122298 | Head First Java | Кати Сиера | О'рейли | 19 долара | 1st |
9987436700 | SQL Пълната справка | Джеймс Р. Гроф | Макгроу-Хил | 45 долара | 3-ти |
XSLT елементи
За да разберем горния XSLT код и той работи, първо трябва да разберем различните XSLT елементи и техните атрибути.
# 1) ИЛИ
Всеки XSLT код трябва да започва с коренния елемент eitheror
Атрибути:
- @xmlns: xsl: Свързва XSLT документ със стандарт XSLT.
- @version: Дефинира версията на XSLT кода на парсера.
# две)
Тази декларация дефинира набор от правила, приложени за обработка или трансформиране на избрания входен елемент на изходния документ в дефинираните правила за целеви елементи на изходните документи.
По принцип се предлагат два типа шаблони според техните атрибути:
(i) Наименован шаблон: Когато елементът xsl: template съдържа атрибут @name, това се нарича Named Template.
Именуваните шаблони се извикват от елемента xsl: call-template.
(ii) Шаблон за съвпадение: Елементът xsl: template съдържа атрибут @match, който съдържа съвпадащ модел или XPath, приложен във входните възли.
Шаблоните за съвпадение се извикват от елемента xsl: apply-template.
xsl: елементът на шаблона трябва да има атрибут @ match или @name атрибут или и двете. Елементът xsl: template, който няма атрибут за съвпадение, не трябва да има атрибут на режим и атрибут за приоритет.
Нека препишем горния XSLT (
да се) XSLT код, базиран на Шаблон за съвпадение с. Вижте по-долу жълто и сиво маркиран променен код, той ще даде същия горепосочен резултат.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Вижте екранната снимка за подчертаната област:
б) XSLT код, базиран на Наименования шаблон с. Вижте по-долу жълто и сиво маркиран променен код, той ще даде същия горепосочен резултат.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Вижте екранната снимка за подчертаната област:
# 3)
Процесорът ще намери и приложи всички шаблони, които имат XPath, дефиниран в атрибута @select.
Атрибутът @mode също се използва, ако искаме да дадем повече от един начин за извеждане с едно и също входно съдържание.
# 4)
Процесорът ще извика шаблоните, които имат стойност в атрибута @name (задължително).
елемент се използва за предаване на параметри в шаблона.
team tutorial урок за начинаещи
# 5)
Предоставете стойността на низа / текста по отношение на израза XPath, дефиниран в атрибута @select, както е дефиниран в горния код.
Това ще даде стойността на името на книгата.
# 6): Повторение
Това ще обработи инструкциите за всеки набор от възли (xpath, дефиниран в @select (задължителен) атрибут) в сортираната последователност.
Горният код означава за всеки възел набор от магазин / книга означава:
/ магазин / книга [1]
/ магазин / книга [2]
/ магазин / книга [3]
може да се използва и като дъщерно устройство на xsl: for-each за определяне на реда на сортиране.
# 7): Условна обработка
Xsl: if инструкциите ще се обработват само ако логическата стойност на атрибута @test ще бъде вярна, в противен случай инструкцията няма да бъде оценена и празната последователност се връща.
2'> Condition True: Count of books are more than two.
Резултат: Състояние вярно: Броят на книгите е повече от две.
Тук count () е предварително зададената функция.
# 8): Обработка на условията за алтернативи
xsl: изберете има няколко случая за различни условия, които се тестват вътре в атрибута @test на елементите xsl: когато, условието на теста, което се сбъдва първо сред всички xsl: когато, което ще бъде обработено първо и има незадължителни 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 рекурсивно.
node () | @ * Стои за всички възли и всички техни атрибути рекурсивно.
Резултат: Това ще копира рекурсивно всички възли и атрибути на изходния документ в изходния документ, т.е. ще създаде точно копие на изходния документ.
# 10)
xsl: copy-of ще копира последователността на възлите с всичките си деца и атрибути рекурсивно по подразбиране, поради това естество това също се нарича дълбоко копиране. За оценката на XPath е необходим атрибут @select.
Резултат: Това ще копира рекурсивно всички възли и атрибути на изходния документ в изходния документ, т.е. ще създаде точно копие на изходния документ.
Стои за копие на текущия възел и текущ атрибут.
# единадесет)
Този елемент се използва за писане на коментар към целевия резултат, всяко текстово съдържание, което е до този таг, ще бъде отпечатано като коментиран изход.
Това ще бъде отпечатано за извеждане като възел за коментари.
Резултат:
# 12)
Това ще генерира текстов възел към резултата, а стойността в xsl: text ще бъде отпечатана като низ за извеждане.
Това е
текстов ред.
Изход:
Това е
текстов ред.
# 13)
Това ще генерира елемент в резултата на документа с името, споменато в неговия атрибут @name. Атрибутът на името е задължителният атрибут.
Резултат: 5350192956
# 14)
Това ще генерира атрибут към своя родителски елемент в резултата. Името на атрибута се дефинира от атрибута name и стойността на атрибута се изчислява от XPath, споменат в атрибута select, както е даден в кода по-долу. Атрибутът на името е задължителният атрибут.
Резултат:
# петнадесет)
Този елемент ще сортира избрания възел по последователен начин, съответно във възходяща или низходяща посока. Възелът или XPath се дава чрез атрибут @select и посоката на сортиране се определя от атрибута @order.
В кода по-долу ще получим всички списъци с книги според името на книгата в азбучен ред.
Books:-
Book ID Book Name Author Name Publisher Price Edition
Вижте тази екранна снимка за маркираната област:
Резултат: Списъкът по-долу съдържа имената на книгите по азбучен ред, т.е. във възходящ ред.
Книги:
Идентификатор на книгата | Име на книгата | Име на автора | Издател | Цена | Издание |
---|---|---|---|---|---|
3741122298 | Head First Java | Кати Сиера | О'рейли | 19 долара | 1st |
9987436700 | SQL Пълната справка | Джеймс Р. Гроф | Макгроу-Хил | 45 долара | 3-ти |
5350192956 | Справочник на програмиста XSLT | Майкъл Кей | Wrox | $ 40 | 4-ти |
# 16)
Този елемент декларира променлива, която съдържа стойност в нея. Променливата може да бъде глобална променлива или локална променлива. Името на променливата се дефинира от атрибута @name, а стойността, която тази променлива ще съдържа, се определя от атрибута @select.
Достъпът до глобалната променлива е глобален, т.е.променливите могат да бъдат извикани в рамките на всеки елемент и да останат достъпни в таблицата със стилове.
За да дефинираме глобална променлива, просто трябва да декларираме, че до основния елемент на таблицата със стилове, както е показано в долния код в жълто маркирано, променливата ‘SecondBook’ е глобалната променлива и тя съдържа името на втората книга.
Достъпът на локалната променлива е локален до елемента, в който е дефиниран, т.е. тази променлива няма да бъде достъпна извън елемента, в който е дефинирана, както е показано в долния код, който е маркиран в сиво, променливата „първа книга“ е локална променлива и тя съдържа името на първата книга.
За да се извика или глобалната променлива към локалната променлива, символът на долар ($) се използва преди името на променливата, както е показано по-долу в жълто $ .
First Book Name: Second Book Name:
Вижте екранната снимка за маркираната област:
Резултат:
Име на първата книга: Справочник на програмиста на XSLT
Име на втората книга: Head First Java
# 17)
Този елемент се използва за деклариране на ключове за съответстващите стойности на шаблона към този конкретен ключ.
Name е доставчик на този ключ чрез атрибут @name („ get-publisher “), Което по-късно се използва във функцията key (). Атрибутът @match се предоставя за въвеждане на възел за въвеждане чрез изрази XPath („ Книга “), Както в долния жълт подчертан @match се използва за индексиране на всички книги, налични в магазина.
По отношение на атрибута @match се използва атрибутът @use, който декларира възела, за да получи стойността за този ключ чрез XPath израз („издател“).
как да отворите .dat файл на mac
Сега, да предположим, че ако се нуждаем от подробностите за книгата, която се публикува само от издателя „Wrox“, тогава можем да получим тази стойност лесно чрез елемента xsl: 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 4th
Резултат / HTML изглед:
Книги:
Идентификатор на книгата | Име на книгата | Име на автора | Издател | Цена | Издание |
---|---|---|---|---|---|
5350192956 | Справочник на програмиста XSLT | Майкъл Кей | Wrox | $ 40 | 4-ти |
# 18)
Този елемент се използва за отстраняване на грешки при разработването на XSLT. Елементът дава изхода си на стандартния изходен екран на приложението.
Атрибутът @terminate се използва с две стойности или „да“, или „не“, ако стойността е зададена на „да“, тогава парсерът прекратява незабавно, веднага щом условието на теста се изпълни, за да може съобщението да бъде изпълнено.
За да разберем това, нека предположим, че ако в нашия входен документ елементът на цената се изпразни случайно, както в кода по-долу, тогава обработката трябва да спре незабавно, веднага щом процесорът срещне празния елемент на цената, което може лесно да се постигне с помощта на xsl: съобщение вътре в условието за тест, както в долния код XSLT.
Сигналът за отстраняване на грешки се показва на стандартния екран на приложението: Обработката е прекратена от xsl: съобщение на ред 21.
Въведете XML код:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Вижте екранна снимка за подчертаната област:
XSLT код:
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) &
елемент дефинира параметъра към шаблон, ако е дефиниран вътре. Той може да бъде дефиниран или отвътре като глобален параметър, или отвътре като локален параметър към този шаблон.
Стойността на се предава / доставя, когато шаблонът се извика byor.
най-добрите програми за наблюдение на температурата на процесора
той предава стойността на параметъра, дефиниран вътре в шаблона. Атрибут като @name съдържа името на параметъра, което трябва да съвпада с атрибута @name на елемента. Атрибутът @Select се използва за задаване на стойност на този параметър.
За извличане на стойността на параметъра се използва същото като променливия знак за долар ($).
Изходен XML код:
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
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