Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Get value

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>   <employee eid="2" dept="training">     <contact addInfo="info2">       <name>         <firstName>S</firstName>         <middleName int="S">S</middleName>         <lastName>W</lastName>         </name>       <address>         <street>1 St.</street>         <city>Austin</city>         <state>Texas</state>         <zipcode>22222</zipcode>       </address>       <phone>         <tel type="wk">512-3467899</tel>         <tel type="hm">512-4623356</tel>         <fax>512-3465655</fax>       </phone>       <email>s@s.com</email>     </contact>     <hireDate>2000-03-11</hireDate>   </employee> </employees> File: Transform.xslt <?xml version="1.0"?> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   version="2.0">   <xsl:output method="text" />   <xsl:template match="/">     <xsl:for-each select="//*">       <xsl:value-of select="concat(name(), ' -- ')" />       <xsl:call-template name="depth" />       ;     </xsl:for-each>   </xsl:template>   <xsl:template name="depth">     <xsl:param name="node" as="node()" select="." />     <xsl:value-of select="count($node/ancestor::node())" />   </xsl:template> </xsl:transform> Output: employees -- 1       ;     title -- 2       ;     employee -- 2       ;     contact -- 3       ;     name -- 4       ;     firstName -- 5       ;     middleName -- 5       ;     lastName -- 5       ;     address -- 4       ;     street -- 5       ;     city -- 5       ;     state -- 5       ;     zipcode -- 5       ;     phone -- 4       ;     tel -- 5       ;     tel -- 5       ;     fax -- 5       ;     email -- 4       ;     hireDate -- 3       ;     employee -- 2       ;     contact -- 3       ;     name -- 4       ;     firstName -- 5       ;     middleName -- 5       ;     lastName -- 5       ;     address -- 4       ;     street -- 5       ;     city -- 5       ;     state -- 5       ;     zipcode -- 5       ;     phone -- 4       ;     tel -- 5       ;     tel -- 5       ;     fax -- 5       ;     email -- 4       ;     hireDate -- 3       ;