for-each loop and table rows : for each « XSLT stylesheet « XML






for-each loop and table rows


File: Data.xml


<?xml version="1.0"?>
<emailList>
  <person>
    <name>name 1</name>
    <email>g@gmail.com</email>
  </person>
  <person>
    <name>name 2</name>
    <email>n@hotmail.com</email>
  </person>
</emailList>



File: Transform.xslt
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
  <head>
    <title>Email Listing</title>
  </head>
  <body>
    <table>
      <tr>
        <th>Name</th>
        <th>E-mail Address</th>
      </tr>
      <xsl:for-each select="emailList/person">
        <tr>
          <td><xsl:value-of select="name"/></td>
          <td><xsl:value-of select="email"/></td>
        </tr>
      </xsl:for-each>
    </table>
  </body>
</html>

Output:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Email Listing</title>
   </head>
   <body>
      <table>
         <tr>
            <th>Name</th>
            <th>E-mail Address</th>
         </tr>
         <tr>
            <td>name 1</td>
            <td>g@gmail.com</td>
         </tr>
         <tr>
            <td>name 2</td>
            <td>n@hotmail.com</td>
         </tr>
      </table>
   </body>
</html>

 








Related examples in the same category

1.Use for-each loop
2.Use for-each to loop through each tags
3.for-each select="*", value-of="."
4.for-each select="node()", value-of select="."
5.for-each select="child::parentTagName", value-of select="childTagName"
6.for-each select="child::parentTagName[@attributeName='your value']"
7.Nested for-each statement