XML/XSLT stylesheet/preceding
preceding axis
<source lang="xml">
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 axis.</title> </head> <body>
Preceding axis.
<xsl:apply-templates select="/Employees/Person[3]/DateOfBirth" /> </body> </html> </xsl:template> <xsl:template match="DateOfBirth"> <xsl:for-each select="preceding::*"> <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 axis.</title> </head> <body>
Preceding axis.
<paragraph>Person which contains the text " A B 2008-12-12 ". </paragraph> <paragraph>FirstName which contains the text " A ". </paragraph> <paragraph>LastName which contains the text " B ". </paragraph> <paragraph>DateOfBirth which contains the text " 2008-12-12 ". </paragraph> <paragraph>Person which contains the text " C D 2008-11-11 ". </paragraph> <paragraph>FirstName which contains the text " C ". </paragraph> <paragraph>LastName which contains the text " D ". </paragraph> <paragraph>DateOfBirth which contains the text " 2008-11-11 ". </paragraph> <paragraph>FirstName which contains the text " E ". </paragraph> <paragraph>LastName which contains the text " F ". </paragraph> </body>
</html>
</source>