Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabKompl1_XML.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
13.8 Mб
Скачать

Лабораторная работа №5 Инструкции управления

xsl:if, xsl:for-each, xsl:choose

Цель работы:

Изучить инструкции управления xsl:if, xsl:for-each, xsl:choose

Ход работы:

Язык XSLT наделен элементами, играющими роль операторов управления, таких же как в алгоритмических языках: условного оператора, оператора цикла, оператора варианта:

  • Элемент xsl:if осуществляет проверку условия и принимает действия на основе результата проверки, записанное в обязательном и единственном атрибуте test:

<xsl:if test="$x > $у">

<xsl:value-of select="$x" /> больше <xsl:value-of select="$y" />

</xsl:if>

Создайте таблицу стилей c элементом xsl:if и примените его для xml документа? , для этого сделайте следующее:

  1. Допустим, что для листинга 3.7 необходимо создать такое условие, что бы в результате проверки появилась надпись- Это ученые: Алан Тьюринг и Ричард Фейман, для этого нужно создать файл таблицы стилей под названием If.xsl:

<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" encoding="windows-1251"/>

<xsl:template match="people">

<Document>

<Title>

The People

</Title>

<people>

Это ученые: Алан Тьюринг и Ричард Фейман

</people>

</Document>

</xsl:template>

<xsl:template match="name">

<xsl:value-of select="first_name"/>

<xsl:if test="position()=last()">and</xsl:if>

</xsl:template>

</xsl:stylesheet>

  1. Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:

<?xml-stylesheet type="text/xsl" href="If.xsl"?> и сохраните под именем If.xml

  1. Откройте документ If.xml в браузере у вас должно получится то, что представлено на рисунке 4.8

Рисунок 4.8

Упражнения для самостоятельной работы

  1. Придумайте свой вариант использования в таблице стилей элемента if и примените его к xml документу

  2. Отобразите в браузере

  • Применение xsl:choose

Элемент xsl:choose позволяет сравнивать значения условия с несколькими возможными вариантами. У него нет атрибутов, содержит один или несколько элементов <xsl:when>

<xsl:choose>

<xsl:when test="@COLOR ='Blue'">

<xsl:value-of select="first_name"/>

</xsl:when>

<xsl:when test="@COLOR ='Green'">

<xsl:value-of select ="last_name"/>

</xsl:when>

</xsl:choose>

Упражнения для самостоятельной работы

  1. Используйте данный элемент для таблицы стилей if.xsl и примените его для xml документа

  2. Отобразите полученное в браузере

  • xsl:for-each

Элемент xsl:for-each позволяет применять тело шаблона в цикле снова и снова для всех элементов набора узлов. Он имеет один атрибут select.

<table>

<xsl:for-each select="name">

<tr>

<td><xsl:value-of –select="@first"/> </td>

<td><xsl:value-of -select="@second"/> </td>

<td><xsl: value-of -select="@surname"/> </td>

</tr>

</xsl:for-each>

</table>

Создайте таблицу стилей c элементом xsl:for-each и примените его для xml документа, для этого сделайте следующее:

  1. Создайте документ для таблицы стилей под названием for-each.xsl:

<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="text" encoding="CP866" />

<xsl:template match="people">

<people>

<xsl:for-each select="person">

<person>

<xsl:for-each select="*">

<data>

<xsl:value-of select="."/>

</data>

</xsl:for-each>

</person>

</xsl:for-each>

</people>

</xsl:template>

</xsl:stylesheet>

Данная таблица проходит в цикле по каждому элементу <people>,а затем во вложенном в него цикле по всем элементам ,содержащимся в элементе <people>,перечисляя их данные из элементов <data>

  1. Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:

<?xml-stylesheet type="text/xsl" href="for-each xsl"?> и сохраните под именем for-each. xml

  1. Откройте документ for-each xml. в браузере у вас должно получится то, что представлено на рисунке 4.9

Рисунок 4.9

Упражнения для самостоятельной работы

  1. Придумайте свой вариант использования в таблице стилей элемента for-each и примените его к xml документу

  2. Отобразите в браузере

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]