1<?xml version="1.0"?> 2 3<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 4 5<xsl:output encoding="utf-8"/> 6 7<xsl:template match='top/*[1]'> 8 <A><xsl:value-of select="."/></A> 9</xsl:template> 10 11<xsl:template match='top/*[6]/kid[2]'> 12 <D><xsl:value-of select="."/></D> 13</xsl:template> 14 15 16<xsl:template match='top/*[position()=2]'> 17 <B><xsl:value-of select="."/></B> 18</xsl:template> 19 20<xsl:template match='top/*[position()=3]'> 21 <C><xsl:value-of select="."/></C> 22</xsl:template> 23 24<!-- bug in jclark's xt: "last()=position()" doesn't equal "position()=last()" --> 25 26<xsl:template match='top/*[position()=last()]'> 27 <LAST><xsl:value-of select="."/></LAST> 28</xsl:template> 29 30<xsl:template match='top' priority="1"> 31 <TOP> 32 <xsl:apply-templates/> 33 </TOP> 34</xsl:template> 35 36</xsl:stylesheet> 37 38