Спонсор: Microsoft
Опубликован: 04.02.2009 | Уровень: специалист | Доступ: платный | ВУЗ: Воронежский государственный университет
Самостоятельная работа 13:

Форматирование и преобразование XML документа с помощью CSS и XSL. XSLT преобразование XML документа

< Самостоятельная работа 12 || Самостоятельная работа 13: 123 || Лекция 12 >

Порядок выполнения лабораторной работы

1.Реализация XSLT преобразования XML документа в XHTML средствами браузера.

  1. Создайте файл 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>
  2. Подготовьте для него соответствующий файл таблицы стилей ( 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 указанного множества узлов.

  3. При наличии подходящего браузера можно будет увидеть следующий результат после загрузке файла ttable.xml:

    Для фильтрации вывода элементов можно добавить атрибут элемента <xsl:for-each>, задающий критерий отбора элементов. Например:

    <xsl:for-each select="timetable/lesson[subject=' SAP Administration']">

    Проверьте работу данного фильтра.

    Допустимо использование следующих операторов для описания фильтра:

    • = (равно)
    • != (не равно)
    • &lt; (меньше чем)
    • &gt; (больше чем)
< Самостоятельная работа 12 || Самостоятельная работа 13: 123 || Лекция 12 >
Михаил Олифиренко
Михаил Олифиренко
Александр Табачук
Александр Табачук

Это только у меня не работает кнопочка "Получить код DreamSpark"? Пишет "временно не доступно..." А когда заработает?

Илья Гончаров
Илья Гончаров
Россия, Воронеж, Воронежский государственный университет, 2004
Андрей Галушко
Андрей Галушко
Украина, Конотоп, КИПТ