>>>

Проектирование, разработка и оптимизация веб-приложений

XML XSLT

Цель лабораторной работы: Познакомиться c языком преобразований XSLT.

Задание: Взять в качестве исходного документа XML документ, созданый в лабораторной работе №1. Используя Пример, представленый ниже, лекции и теоретические сведения, написать коммандный файл для получения из XML документа, согласно XSL правил (необходимо также Вам создать), документа HTML, представляющего в виде гипертекста указаную в первоначальном документе информацию.

Замечание. Для работы потребуются инструментальные средства: любой текстовый редактор (подойдет блокнот), парсер XSLT шаблонов Xalan (скачать),

Практический пример.

Пусть имеется созданый XML документ.

<?xml version="1.0"?>
<sonnet type="Shakespearean">
<author>
   <lastName>Shakespeare</lastName>
   <firstName>William</firstName>
   <nationality>British</nationality>
   <yearOfBirth>1564</yearOfBirth>
    <yearOfDeath>1616</yearOfDeath>
</author>
<title>Sonnet 130</title>
<lines>
   <line>My mistress' eyes are nothing like the sun,</line>
   <line>Coral is far more red than her lips red.</line>
   <line>If snow be white, why then her breasts are dun,</line>
   <line>If hairs be wires, black wires grow on her head.</line>
   <line>I have seen roses damasked, red and white,</line>
   <line>But no such roses see I in her cheeks.</line>
   <line>And in some perfumes is there more delight</line>
   <line>Than in the breath that from my mistress reeks.</line>
   <line>I love to hear her speak, yet well I know</line>
   <line>That music hath a far more pleasing sound.</line>
   <line>I grant I never saw a goddess go,</line>
   <line>My mistress when she walks, treads on the ground.</line>
   <line>And yet, by Heaven, I think my love as rare</line>
   <line>As any she belied with false compare.</line>
</lines>
</sonnet>

Для преобразования в HTML мы создали шаблон

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/sonnet">
<html><head><title>Shakespearean sonnet</title></head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="author">
<h1><xsl:value-of select="lastName"/>,<xsl:value-of select="firstName"/>
(<xsl:value-of select="yearOfBirth"/>-<xsl:value-of select="yearOfDeath"/>),
<xsl:value-of select="nationality"/></h1><br/><hr/>
</xsl:template>
<xsl:template match="lines">
<xsl:for-each select="line">
   <xsl:value-of select="."/><br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Пусть исходный XML документ, а также XSL шаблоны находятся в одной текущей директории. Соответсвенно в поддиректории classes находятся класс xalan в директории с таким же названиями.

Тогда комманда для преобразования могут выглядеть следующим образом:

java -cp classes\xalan\xalan.jar org.apache.xalan.xslt.Process -IN sonnet.xml -XSL sonnetrules.xsl -OUT sonnet_tesult_html.htm

Получаем результирующий файл

Размер шрифта:
А
А
А
Цвет сайта:
A
A
A
Изображение:
Вкл.
Выкл.
Обычная версия