File: Data.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<SCENE REF="4.3">
<SPEECH>
<SPEAKER>A</SPEAKER>
I
<NL />
</SPEECH>
<SPEECH>
<SPEAKER>B</SPEAKER>
O
<NL />
</SPEECH>
</SCENE>
File: Transform.xslt
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:variable name="backcolor" select="'#FFFFCC'" />
<xsl:template match="SCENE|PROLOGUE|EPILOGUE">
<HTML>
<HEAD>
<TITLE>
<xsl:value-of select="TITLE" />
</TITLE>
</HEAD>
<BODY BGCOLOR='{$backcolor}'>
<xsl:apply-templates />
</BODY>
</HTML>
</xsl:template>
<xsl:template match="SPEECH">
<TABLE>
<TR>
<TD WIDTH="160" VALIGN="TOP">
<xsl:apply-templates select="SPEAKER" />
</TD>
<TD VALIGN="TOP">
<xsl:apply-templates select="STAGEDIR|LINE" />
</TD>
</TR>
</TABLE>
</xsl:template>
<xsl:template match="TITLE">
<H1>
<CENTER>
<xsl:apply-templates />
</CENTER>
</H1>
<HR />
</xsl:template>
<xsl:template match="SPEAKER">
<B>
<xsl:apply-templates />
<xsl:if test="not(position()=last())">
<BR />
</xsl:if>
</B>
</xsl:template>
<xsl:template match="SCENE/STAGEDIR">
<CENTER>
<H3>
<xsl:apply-templates />
</H3>
</CENTER>
</xsl:template>
<xsl:template match="SPEECH/STAGEDIR">
<P>
<I>
<xsl:apply-templates />
</I>
</P>
</xsl:template>
<xsl:template match="LINE/STAGEDIR">
[
<I>
<xsl:apply-templates />
</I>
]
</xsl:template>
<xsl:template match="SCENE/SUBHEAD">
<CENTER>
<H3>
<xsl:apply-templates />
</H3>
</CENTER>
</xsl:template>
<xsl:template match="SPEECH/SUBHEAD">
<P>
<B>
<xsl:apply-templates />
</B>
</P>
</xsl:template>
<xsl:template match="LINE">
<xsl:apply-templates />
<BR />
</xsl:template>
</xsl:stylesheet>
Output:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE></TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFCC">
<TABLE>
<TR>
<TD WIDTH="160" VALIGN="TOP"><B>A</B></TD>
<TD VALIGN="TOP"></TD>
</TR>
</TABLE>
<TABLE>
<TR>
<TD WIDTH="160" VALIGN="TOP"><B>B</B></TD>
<TD VALIGN="TOP"></TD>
</TR>
</TABLE>
</BODY>
</HTML>
|