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

Лабораторная работа №6

Изменение структуры документа на основе входных данных

Цель работы:

Изучить инструкции позволяющие изменить структуру документа на основе входных данных

Ход работы:

Инструкции xsl:attribute, xsl:element, декларация xsl:attribute-set

Язык XSLT позволяет не только преобразовывать уже существующие узлы,

но и создавать новые.

Инструкций xsi:attribute и xsi:element по одному обязательному атрибуту name, задающему имя атрибута или элемента. Значение атрибута или содержимое элемента записывается в теле инструкций конструктором последовательности. Например:

<xsl:attribute name="attrl">Valuel</xsl:attribute>

<xsl:element name="eleml">Contentl</xsl:element>

Кроме обязательного атрибута name у обеих инструкций есть одинаковые необязательные атрибуты. Необязательный атрибут namespace определяет пространство имен. Необязательные атрибуты validation и type позволяют процессору сделать проверку типа атрибута или элемента, определенного в схеме документа.

Еще один полезный элемент — декларация xsi:attribute-set — позволяет объединить определения нескольких атрибутов под одним именем, которое затем можно будет использовать в элементах xsi:element, xsi:сору или в другом элементе xsi:attribute-set.

У декларации xsi:attribute-set есть один обязательный атрибут name, именующий множество атрибутов. Сами атрибуты определяются в теле декларации. В следующем примере создается два множества атрибутов AS1 И AS2, каждое множество содержит определения двух атрибутов:

<xsl:attribute-set name="ASl">

<xsl:attribute name="attrll">attrll-value</xsi:attribute>

<xsl:attribute name="attrl2">attrl2-value</xsl:attribute>

</xsl:attribute-set>

<xsl:attribute-set name="AS2">

<xsl:attribute name="attr21">attr21-value</xsl:attribute>

<xsl:attribute name="attr22">attr22-value</xsl:attribute>

</xsl:attribute-set>

У инструкции xsl:element тоже есть необязательный атрибут use-attribute-sets, с помощью которого создаются атрибуты элемента из предварительно определенного множества атрибутов. В следующем примере создается элемент someeiem с четырьмя атрибутами из множеств ASI И AS2:

<xsl:template match="elem">

<xsl:element name="someelem" use-attribute-sets="ASl AS2">

Какое-то содержимое

</xsl:element>

</xsl:template>

Создайте таблицу стилей с использованием инструкций xsl:element и xsl:attribute,для этого сделайте следующее:

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

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

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

<xsl:template match="/name">

<xsl:element name="myElement">

<xsl:attribute name="{name()}">

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

</xsl:attribute>

</xsl:element>

</xsl:template>

</xsl:stylesheet>

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

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

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

Рисунок 4.10

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