Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Select one from the target value list

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>