tag with index : axis « XSLT stylesheet « XML






tag with index


File: Data.xml
<html>
  <body>
    <table>
      <tr>
        <td>A</td>
        <td>B</td>
        <td>100000</td>
        <td>4/23/1999</td>
      </tr>
      <tr>
        <td>C</td>
        <td>D</td>
        <td>95000</td>
        <td>09/01/1998</td>
      </tr>
      <tr>
        <td>E</td>
        <td>F</td>
        <td>97000</td>
        <td>10/16/2000</td>
      </tr>
    </table>
  </body>
</html>

File: Transform.xslt

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">
  <xsl:output method="xml" omit-xml-declaration="yes" indent="no" />

  <xsl:template match="table">
    <employees>
      <xsl:apply-templates />
    </employees>
  </xsl:template>

  <xsl:template match="tr">
    <employee hireDate="{td[4]}">
      <last>
        <xsl:value-of select="td[1]" />
      </last>
      <first>
        <xsl:value-of select="td[2]" />
      </first>
      <salary>
        <xsl:value-of select="td[3]" />
      </salary>
    </employee>
  </xsl:template>

</xsl:stylesheet>

Output:


  
    <employees>
      <employee hireDate="4/23/1999"><last>A</last><first>B</first><salary>100000</salary></employee>
      <employee hireDate="09/01/1998"><last>C</last><first>D</first><salary>95000</salary></employee>
      <employee hireDate="10/16/2000"><last>E</last><first>F</first><salary>97000</salary></employee>
    </employees>
  

 








Related examples in the same category

1.List All customers: /report/customer
2.template match="//customer"
3.template match="//customer[1]/name"
4.template match="//processing-instruction()"
5.Match all from root
6.for-each and select="."
7.select="." (dot)
8.Match an element
9.match element with certain attribute value
10.match="text()|@*"
11.match="@*|node()"
12.select down to a certain level and its attribute
13.for-each select="listitem[position() > 1]"