Donnerstag, 26. Mai 2011

A simple XSL Transformation (XSLT) for docbook xml files

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook">

<xsl:template match="/">
<html><head><title><xsl:value-of select="d:book/d:info/d:title" /></title></head><body style="font-family:Verdana">
<xsl:apply-templates select="d:book/d:preface"/>
<xsl:apply-templates select="d:book/d:chapter"/>
</body></html>
</xsl:template>

<xsl:template match="d:info/d:author">
<b><xsl:value-of select="." /></b>
</xsl:template>

<xsl:template match="d:preface">
<h1><xsl:value-of select="d:title"/></h1>
<xsl:apply-templates select="d:para"/>
<xsl:apply-templates select="d:itemizedlist"/>
<xsl:apply-templates select="d:orderedlist"/>
</xsl:template>

<xsl:template match="d:chapter">
<h1><xsl:value-of select="d:title"/></h1>
<xsl:apply-templates select="d:para"/>
<xsl:apply-templates select="d:itemizedlist"/>
<xsl:apply-templates select="d:orderedlist"/>
<xsl:apply-templates select="d:section"/>
</xsl:template>

<xsl:template match="d:para">
<p><xsl:value-of select="."/></p>
</xsl:template>

<xsl:template match="d:itemizedlist">
<ul><xsl:apply-templates select="d:listitem"/></ul>
</xsl:template>

<xsl:template match="d:orderedlist">
<ol><xsl:apply-templates select="d:listitem"/></ol>
</xsl:template>

<xsl:template match="d:listitem">
<li><xsl:value-of select="."/></li>
</xsl:template>

<xsl:template match="d:section">
<h2><xsl:value-of select="d:title"/></h2>
<xsl:apply-templates select="d:para"/>
<xsl:apply-templates select="d:itemizedlist"/>
<xsl:apply-templates select="d:orderedlist"/>
</xsl:template>

</xsl:stylesheet>