Форматирование и преобразование XML документа с помощью CSS и XSL. XSLT преобразование XML документа
Порядок выполнения лабораторной работы
1.Реализация XSLT преобразования XML документа в XHTML средствами браузера.
- Создайте файл ttable.xml следующего содержания:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="ttable.xsl"?> <timetable> <lesson> <timeFrom>09.30</timeFrom> <timeTo>11.00</timeTo> <subject>Deutsch</subject> <teacher>Borisova</teacher> </lesson> <lesson> <timeFrom>11.10</timeFrom> <timeTo>12.20</timeTo> <subject>SAP Administration</subject> <teacher>Petrov</teacher> </lesson> <lesson> <timeFrom>12.40</timeFrom> <timeTo>14.00</timeTo> <subject>SAP Administration</subject> <teacher>Ivanov</teacher> </lesson> <lesson> <timeFrom>14.00</timeFrom> <timeTo>15.20</timeTo> <subject>Wen-technology</subject> <teacher>Loktev</teacher> </lesson> </timetable>
- Подготовьте для него соответствующий файл таблицы стилей ( ttable.xsl ):
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My academical timetable</h2> <table border="1"> <tr bgcolor="#a5abfa"> <th align="left">Time From</th> <th align="left">Subject</th> <th align="left">Teacher</th> </tr> <xsl:for-each select="timetable/lesson"> <tr> <td><xsl:value-of select="timeFrom"/></td> <td><xsl:value-of select="subject"/></td> <td><xsl:value-of select="teacher"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Первая строка в файле ttable.xml вида:
<?xml-stylesheet type="text/xsl" href="ttable.xsl"?>
представляет собой ссылку на подходящую таблицу стилей.
В данном примере для описания шаблона был использован элемент <xsl:template>.
Атрибут match применяется для связывания XML элемента с шаблоном. Значение атрибута match является выражение XPath. В данном случает match="/" указывает на весь документ.
Содержимое элемента <xsl:template> описывает фрагмент HTML кода в выходном документе. Элемент <xsl:value-of> может быть использован для извлечения значения XML элемента и добавления его в выходной поток при преобразовании. Значение атрибута select является выражением XPath, которое напоминает нотацию, используемую в файловой системе; знак ( / ) указывает на обращение к подкаталогу.
Элемент <xsl:for-each> позволяет выбирать каждый элемент XML указанного множества узлов.
- При наличии подходящего браузера можно будет увидеть следующий результат после загрузке файла ttable.xml:
Для фильтрации вывода элементов можно добавить атрибут элемента <xsl:for-each>, задающий критерий отбора элементов. Например:
<xsl:for-each select="timetable/lesson[subject=' SAP Administration']">
Проверьте работу данного фильтра.
Допустимо использование следующих операторов для описания фильтра:
- = (равно)
- != (не равно)
- < (меньше чем)
- > (больше чем)