top of page

Simple Looping using XSLT 

 

XML File

<?xml version="1.0" encoding="UTF-8"?>

<GolfCountryClub>

  <GolfCourse NumberOfHoles="18">

    <Name>Bird's Nest Course</Name>

    <Yardage>7125</Yardage>

    <Par>72</Par>

    <Handicap>74.6</Handicap>

    <Slope>138</Slope>

  </GolfCourse>

  

  <GolfCourse NumberOfHoles="18">

    <Name>Eagle's Nest Course</Name>

    <Yardage>7198</Yardage>

    <Par>72</Par>

    <Handicap>73.5</Handicap>

    <Slope>136</Slope>

  </GolfCourse>

  

  <Member handicap="20">

    <RegularMember>

      <FirstName>Keith</FirstName>

      <LastName>Chong</LastName>

      <MembershipExpiry>2010-10-31</MembershipExpiry>

    </RegularMember>

  </Member>

 

  <Member handicap="0">

    <ExclusiveMember>

      <FirstName>James</FirstName>

      <MiddleName>Lion</MiddleName>

      <LastName>Chan</LastName>

      <ValetParkingID>124</ValetParkingID>

      <LockerNumber>10</LockerNumber>

    </ExclusiveMember>

  </Member>

 

  <Member handicap="25">

    <RestrictedMember>

      <FirstName>Allan</FirstName>

      <LastName>Chong</LastName>

      <MembershipExpiry>2010-10-31</MembershipExpiry>

      <LimitedPlay>Weekend Only</LimitedPlay>

    </RestrictedMember>

  </Member>

  

  <Member handicap="10">

    <RegularMember>

      <FirstName>Murray</FirstName>

      <MiddleName>Izzun</MiddleName>

      <LastName>Beaton</LastName>

      <MembershipExpiry>2010-09-30</MembershipExpiry>

    </RegularMember>

  </Member>

 

  <Employee>

    <FirstName>Craig</FirstName>

    <LastName>Salter</LastName>

    <EmployeeNumber>12463</EmployeeNumber>

  </Employee>

  

  <Employee>

    <FirstName>Ernest</FirstName>

    <LastName>Mah</LastName>

    <EmployeeNumber>15234</EmployeeNumber>

  </Employee>

 

  <ProShop>

    <GolfClub>

      <ManufacturerName>Tailor Built</ManufacturerName>

      <Quantity>20</Quantity>

      <ClubKind>Driver</ClubKind>

      <Loft>10.5 Degrees</Loft>

      <Shaft>Stiff</Shaft>

    </GolfClub>

    <GolfClub>

      <ManufacturerName>Clever Plains</ManufacturerName>

      <Quantity>5</Quantity>

      <ClubKind>Wedge</ClubKind>

      <Loft>60 Degrees</Loft>

      <Shaft>Regular</Shaft>

    </GolfClub>

    <BoxOfBalls>

      <ManufacturerName>A-Subject</ManufacturerName>

      <Quantity>20</Quantity>

      <ProductDetails>Pos. A High Spin/12</ProductDetails>

    </BoxOfBalls>

  </ProShop>

 

</GolfCountryClub>

 

XSL File 

 

 

<?xml version="1.0"?> 

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

 

<xsl:template match="/">

<html>

<head>

<title>Our Items</title>

</head>

<body style="background-color: #DACFE5; font-family:Arial, Helvetica, sans-serif">

<xsl:for-each select="/GolfCountryClub/GolfCourse">

<h1 style="color:#0D3427">

<xsl:attribute name="src">

<xsl:value-of select="Name"/>

</xsl:attribute>

<xsl:value-of select="name"/>

<xsl:text> ... </xsl:text>

<xsl:value-of select="Yardage"/>

</h1>

</xsl:for-each>

 

</body>

</html>

</xsl:template>

 

</xsl:stylesheet>

 

Output File

 

<html>

<head>

<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Our Items</title>

</head>

<body style="background-color: #DACFE5; font-family:Arial, Helvetica, sans-serif">

<h1 style="color:#0D3427" src="Bird's Nest Course"> ... 7125</h1>

<h1 style="color:#0D3427" src="Eagle's Nest Course"> ... 7198</h1>

</body>

</html>

For the same XML file if we use the below XSL file, the output will differ. 

 

<?xml version="1.0"?> 

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="/">

<html>

<head>

<title>Our Items</title>

</head>

<body style="background-color: #DACFE5; font-family:Arial, Helvetica, sans-serif">

<xsl:for-each select="/GolfCountryClub/GolfCourse">

<h1> <xsl:value-of select="Name"/> </h1>

<h1> <xsl:value-of select="Yardage"/> </h1>

<h1> <xsl:text> Test Message </xsl:text> </h1>

<h1> <xsl:value-of select="Par"/> </h1>

<h1> <xsl:value-of select="Handicap"/> </h1>

<h1> <xsl:value-of select="Slope"/> </h1>

</xsl:for-each>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

 

Output File

 

<html>

<head>

<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Our Items</title>

</head>

<body style="background-color: #DACFE5; font-family:Arial, Helvetica, sans-serif">

<h1>Bird's Nest Course</h1>

<h1>7125</h1>

<h1> Test Message </h1>

<h1>72</h1>

<h1>74.6</h1>

<h1>138</h1>

<h1>Eagle's Nest Course</h1>

<h1>7198</h1>

<h1> Test Message </h1>

<h1>72</h1>

<h1>73.5</h1>

<h1>136</h1>

</body>

</html>

bottom of page