child
File: Data.xml <wine grape="A"> <winery>B</winery> <year>1998</year> <prices> <list>13.99</list> <discounted>11.99</discounted> <case>143.50</case> </prices> </wine> File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="wine"> <wine vintage="{child::year}"> <xsl:apply-templates select="product" /> <category> <xsl:value-of select="@grape" /> </category> <xsl:apply-templates select="price" /> </wine> </xsl:template> <xsl:template match="@*|node()|processing-instruction()|comment()"> <xsl:copy> <xsl:apply-templates select="@*|node()|processing-instruction()|comment()" /> </xsl:copy> </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><wine vintage="1998"><category>A</category></wine>