Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Preceding axis

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>         <h3>Preceding axis.</h3>         <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>       <h3>Preceding axis.</h3>       <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>