Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Ancestor

File: Data.xml <?xml-stylesheet type="text/xsl" href="Transform.xslt"?> <orgchart date="28 March 2001">   <person>     <name>chart 1</name>     <title>title1</title>     <reports>       <person>         <name>a</name>         <title>b</title>         <reports>           <person>             <name>c</name>             <title>d</title>           </person>           <person>             <name>e</name>             <title>f</title>           </person>         </reports>       </person>       <person>         <name>S</name>         <title>M</title>       </person>       <person>         <name>S</name>         <title>I</title>       </person>     </reports>   </person> </orgchart>   File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   version="1.0">   <xsl:param name="title">Management Structure</xsl:param>   <xsl:output indent="yes" />   <xsl:template match="/">     <html>       <head>         <title>           <xsl:value-of select="$title" />         </title>       </head>       <body>         <h1>           <xsl:value-of select="$title" />         </h1>         <p>           The following responsibilies were announced on           <xsl:value-of select="/orgchart/@date" />           :         </p>         <table border="2" cellpadding="5">           <tr>             <th>Name</th>             <th>Role</th>             <th>Reporting to</th>           </tr>           <xsl:for-each select="//person">             <tr>               <td>                 <xsl:value-of select="name" />               </td>               <td>                 <xsl:value-of select="title" />               </td>               <td>                 <xsl:value-of                   select="ancestor::person[1]/name" />               </td>             </tr>           </xsl:for-each>         </table>         <hr />       </body>     </html>   </xsl:template> </xsl:stylesheet> Output: <html>    <head>       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">       <title>Management Structure</title>    </head>    <body>       <h1>Management Structure</h1>       <p>                    The following responsibilies were announced on                    28 March 2001                    :                         </p>       <table border="2" cellpadding="5">          <tr>             <th>Name</th>             <th>Role</th>             <th>Reporting to</th>          </tr>          <tr>             <td>chart 1</td>             <td>title1</td>             <td></td>          </tr>          <tr>             <td>a</td>             <td>b</td>             <td>chart 1</td>          </tr>          <tr>             <td>c</td>             <td>d</td>             <td>a</td>          </tr>          <tr>             <td>e</td>             <td>f</td>             <td>a</td>          </tr>          <tr>             <td>S</td>             <td>M</td>             <td>chart 1</td>          </tr>          <tr>             <td>S</td>             <td>I</td>             <td>chart 1</td>          </tr>       </table>       <hr>    </body> </html>