Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Self

File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="Transform.xslt" type="text/xsl"?> <employees xmlns="http://www.domain.com/namespace/employee">   <title>Employee Data File</title>   <employee eid="1" dept="programming">     <contact addInfo="info1">       <name>         <firstName>Joe</firstName>         <middleName int="B">Brian</middleName>         <lastName>Smith</lastName>       </name>       <address>         <street>1 Drive</street>         <city>Vancouver</city>         <state>BC</state>         <zipcode>80210</zipcode>       </address>       <phone>         <tel type="wk">111-1111111</tel>         <tel type="hm">222-222222</tel>         <fax>303-4667357</fax>       </phone>       <email>a@a.com</email>     </contact>     <hireDate>2008-10-29</hireDate>   </employee> </employees> File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">    <xsl:output method="html" indent="yes" />    <xsl:template match="/">       <html>          <head>             <title>Employee Data Output</title>          </head>          <body>             <xsl:apply-templates select="employees/employee" />          </body>       </html>    </xsl:template>    <xsl:template match="employee">       <h1>          <xsl:value-of select="parent::node()/title" />       </h1>       <table>          <tr>             <th>Number</th>             <th>Email</th>          </tr>          <tr>             <xsl:for-each select="self::node()">                <td>                   <xsl:number />                </td>                <td>                   <xsl:value-of select="contact/email" />                </td>             </xsl:for-each>          </tr>       </table>    </xsl:template> </xsl:stylesheet> Output: <html>    <head>       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">       <title>Employee Data Output</title>    </head>    <body></body> </html>