Работа с XSLT
XSLT (eXtensible Stylesheet Language for Transformations - Extensible Stylesheet Language for Transformations) се използва, в по-голямата си част, за трансформиране на данни от формата XML във формат Html. XSLT обаче може да се използва за трансформиране от XML (или друг формат, използващ пространството от имена xml, като RDF) във всеки друг формат, дори обикновен текст.
Консорциумът W3 определя три съставни части на езика XSL (от английския eXtensible Stylesheet Language - Extensible Stylesheet Language): XSLT, XPath (път и език за израз, използван в XSLT за достъп до определени части на XML документ) и XSL форматиране на обекти -- речник, който определя семантиката на форматирането на документи.
Представяме ви XSLT
На първо място, трябва да посочим, че нашият документ използва XML стил и да импортираме XML пространството от имена:
След това основният елемент, който ще използваме, е xsl: match match. Този елемент се извиква всеки път, когато xml името на възела съвпада със стойността на атрибута xsl: template match:
Вътре в елемента xsl: template match, вложени възли трябва да бъдат посочени с: xsl: value-of select елемент. Нека първо създадем xml документ, съдържащ известна информация:
Ето как трябва да изглежда трансформацията xslt, която изважда текстовия възел от основния елемент (здравей):
Това ще доведе до следния HTML документ:
Извличане на атрибутни стойности
конструкцията @att връща стойността на атрибута att. Например:
Ако обмислите да използвате атрибута цвят за показване на Hello World! с подходящия цвят, можете да направите това по два начина: създайте променлива и я използвайте, за да зададете цвета на шрифта, или използвайте елемента xsl: attribute .
Променливи
Променливите в XSLT се различават от променливите в конвенционалните програмни езици по това, че техните стойности не могат да бъдат променяни. След като дадена стойност е присвоена на променлива, тя остава постоянна.
(Странно защо променливите се наричат променливи, а не константи. Бележка на редактора.)
Променливите се дефинират просто:
На променлива може да бъде присвоена стойност на възел или стойност на атрибут на възел:
Оригиналният xml документ (не придружих статията с моите снимки, за да не ви изплаша:-))
Както можете да видите, елементът е бил извикан три пъти, защото всеки път, когато xslt намери елемент, който съответства на xsl: apply-templates, той извиква съответния xsl: template match .
Така! Нямате търпение да покажете текст в червено? Опитайте се да направите това с помощта на променливи, ако не работи, можете да разгледате примера hello_style_variables.xsl
Сортиране
Сортирането на XML тагове в XSLT се извършва с помощта на елемента Този елемент трябва да бъде поставен вътре в xsl: apply-templates (сортирането може да се извърши и в xsl: for-всеки елемент приблизително perev.). Сортирането може да се извърши както от самите xml тагове, така и от техните атрибути, редът за сортиране може да бъде зададен във възходящ или низходящ ред (ако малките символи трябва да предшестват големите букви или обратно).