Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 486
Ильдар Шаукатович Хабибуллин
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="">
<xsl:output method="text" encoding="CP866" />
<xsl:template match="person">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="name">
<xsl:value-of select="@first" /> <xsl:text> </xsl:text> <xsl:value-of select="@second" /> <xsl:text> </xsl:text>
<xsl:value-of select="@surname" />
</xsl:template>
<xsl:template match="address">
<xsl:value-of select="street" /> <xsl:text> </xsl:text> <xsl:value-of select="city" /> <xsl:text> </xsl:text> <xsl:value-of select="zip" />
</xsl:template>
<xsl:template match="phone-list">
<xsl:value-of select="work-phone" /> <xsl:text>
</xsl:text> <xsl:value-of select="home-phone" /> <xsl:text>
</xsl:text> </xsl:template>
</xsl:stylesheet>
Мы не будем в данной книге заниматься языком XSL — одно его описание будет толще всей этой книги. На русский язык переведена "библия" XSLT [20]. Ее автор Майкл Кэй (Michael H. Kay) создал и свободно распространяет популярный XSLT -процессор Saxon, .
Преобразование документа XML в HTML
С помощью языка XSL и методов класса Transformer можно легко преобразовать документ XML в документ HTML. Достаточно написать соответствующую таблицу стилей. В листинге 28.15 показано, как это можно сделать для адресной книжки листинга 28.2.
Листинг 28.15. Таблица стилей для преобразования XML в HTML
<?xml version="1.0" encoding="Windows-1251"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="">
<xsl:output method="html" encoding="Windows-1251"/>
<xsl:template match="/">
<html><head><title>ADpecHaH книжка</title></head> <body><h2>Фамилии, адреса и телефоны</!а2>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="name">
<p />
<xsl:value-of select="@first" /> <xsl:text> </xsl:text> <xsl:value-of select="@second" /> <xsl:text> </xsl:text> <xsl:value-of select="@surname" /> <br />
</xsl:template>
<xsl:template match="address">
<br />
<xsl:value-of select="street" /> <xsl:text> </xsl:text>
<xsl:value-of select="city" /> <xsl:text> </xsl:text>
<xsl:value-of select="zip" /> <br />
</xsl:template>
<xsl:template match="phone-list">
Рабочий: <xsl:value-of select="work-phone" /> <br />
Домашний: <xsl:value-of select="home-phone" /> <br />
</xsl:template>
</xsl:stylesheet>
Эту таблицу стилей можно записать в файл, например, ntb.xsl, и сослаться на него в документе XML, описывающем адресную книжку:
<?xml version="1.0" encoding="Windows-1251"?>