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>