preceding-sibling
File: Data.xml <?xml version="1.0"?> <Employees> <Person> <FirstName>A</FirstName> <LastName>B</LastName> <DateOfBirth>2008-12-12</DateOfBirth> </Person> <Person> <FirstName>C</FirstName> <LastName>D</LastName> <DateOfBirth>2008-11-11</DateOfBirth> </Person> <Person> <FirstName>E</FirstName> <LastName>F</LastName> <DateOfBirth>2008-10-10</DateOfBirth> </Person> </Employees> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title>preceding-sibling axis.</title> </head> <body> <h3>Preceding-sibling axis.</h3> <xsl:apply-templates select="/Employees/Person[3]/DateOfBirth" /> </body> </html> </xsl:template> <xsl:template match="DateOfBirth"> <xsl:for-each select="preceding-sibling::*"> <paragraph> <xsl:value-of select="name(.)" /> which contains the text " <xsl:value-of select="." /> ". </paragraph> </xsl:for-each> </xsl:template> </xsl:stylesheet> Output: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>preceding-sibling axis.</title> </head> <body> <h3>Preceding-sibling axis.</h3> <paragraph>FirstName which contains the text " E ". </paragraph> <paragraph>LastName which contains the text " F ". </paragraph> </body> </html>