<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>First Paragraphs</title>
</head>
<body>
<xsl:apply-templates select="chapter"/>
</body>
</html>
</xsl:template>
<xsl:template match="chapter">
<p>
<xsl:value-of select="para[position() = 1]"/>
</p>
<xsl:apply-templates select="sect1"/>
</xsl:template>
<xsl:template match="sect1">
<h1><xsl:value-of select="title"/></h1>
<p>
<xsl:value-of select="para[position() = 1]"/>
</p>
<xsl:apply-templates select="sect2"/>
</xsl:template>
<xsl:template match="sect2">
<h2><xsl:value-of select="title"/></h2>
<p>
<xsl:value-of select="para[position() = 1]"/>
</p>
<xsl:apply-templates select="sect3"/>
</xsl:template>
<xsl:template match="sect3">
<h3><xsl:value-of select="title"/></h3>
<p>
<xsl:value-of select="para[position() = 1]"/>
</p>
<xsl:apply-templates select="sect4"/>
</xsl:template>
<xsl:template match="sect4">
<h4><xsl:value-of select="title"/></h4>
<p>
<xsl:value-of select="para[position() = 1]"/>
</p>
<xsl:apply-templates select="sect5"/>
</xsl:template>
<xsl:template match="sect5">
<h5><xsl:value-of select="title"/></h5>
<p>
<xsl:value-of select="para[position() = 1]"/>
</p>
<xsl:apply-templates select="sect6"/>
</xsl:template>
<xsl:template match="sect6">
<h6><xsl:value-of select="title"/></h6>
<p>
<xsl:value-of select="para[position() = 1]"/>
</p>
</xsl:template>
</xsl:stylesheet>
You can find this example in examples/paragraphs.xsl