Технология XSLT
Шрифт:
</QueryString>
</General>
<Param>
<z>3</z>
<z>6</z>
<y>2</y>
<y>5</y>
<x>1</x>
<x>4</x>
</Param>
<Session>
<v>4</v>
</Session>
<Cookie>
<content>apple jam</content>
<JServSessionIdroot>aaenbyjqc0</JServSessionIdroot>
</Cookie>
</Request>
После
stylesheet.xsl
, которое создает его HTML-представление. Листинг 9.25. Преобразование stylesheet.xsl
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Request">
<html>
<head>
<title>Request information</title>
</head>
<body><xsl:apply-templates mode="table"/></body>
</html>
</xsl:template>
<xsl:template match="*" mode="table">
<h1><xsl:apply-templates select="." mode="header"/></h1>
<table><xsl:apply-templates mode="row"/></table>
</xsl:template>
<xsl:template match="General" mode="header">
<xsl:text>General information</xsl:text>
</xsl:template>
<xsl:template match="Param" mode="header">
<xsl:text>Request parameters</xsl:text>
</xsl:template>
<xsl:template match="Session" mode="header">
<xsl:text>Session parameters</xsl:text>
</xsl:template>
<xsl:template match="Cookie" mode="header">
<xsl:text>Cookies</xsl:text>
</xsl:template>
<xsl:template match="*" mode="row">
<tr>
<td><xsl:apply-templates select="." mode="name"/></td>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:template>
<xsl:template match="*" mode="name">
<xsl:value-of select="name"/>
</xsl:template>
<xsl:template match="General/ServerName" mode="name">
<xsl:text>Server name</xsl:text>
</xsl:template>
<xsl:template match="General/ServerPort" mode="name">
<xsl:text>Server port</xsl:text>
</xsl:template>
<xsl:template match="General/RemoteAddr" mode="name">
<xsl:text>Remote address</xsl:text>
</xsl:template>
<xsl:template match="General/RequestURI" mode="name">
<xsl:text>Request URI</xsl:text>
</xsl:template>
<xsl:template match="General/QueryString" mode="name">
<xsl:text>Query string</xsl:text>
</xsl:template>
</xsl:stylesheet>
Результатом
Листинг 9.26. Результирующий HTML-документ
<html>
<head>
<title>Request information</title>
</head>
<body>
<h1>General information</h1>
<table>
<tr>
<td>Server name</td>
<td>aphrodite.fzi.de</td>
</tr>
<tr>
<td>Server port</td>
<td>80</td>
</tr>
<tr>
<td>Remote address</td>
<td>127.0.0.1</td>
Поделиться:
Популярные книги
Я все еще князь. Книга XXI
21. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Контракт на материнство
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Последняя Арена 5
5. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Возвышение Меркурия. Книга 17
17. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Релокант
1. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Город воров. Дороги Империи
7. Пожиратель
Фантастика:
боевая фантастика
5.43
рейтинг книги
Босс для Несмеяны
11. Семеро боссов корпорации SEVEN
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Меч Предназначения
2. Ведьмак
Фантастика:
фэнтези
9.35
рейтинг книги
Сын Багратиона
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Идеальный мир для Лекаря 10
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Сердце для стража
5. Девятый
Фантастика:
фэнтези
боевая фантастика
9.20
рейтинг книги
На границе империй. Том 10. Часть 4
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Чехов. Книга 2
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Санек 3
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00