Define a variable and then use it in for loop : Variable « XSLT stylesheet « XML






Define a variable and then use it in for loop


File: Data.xml 

<?xml version="1.0"?>
<programme>
   <opera>
      <title>A</title>
      <composer>Mozart</composer>
      <date>1787</date>
   </opera>
   <composer name="Mozart">
      <fullname>Mozart</fullname>
      <born>1756</born>
      <died>1791</died>
   </composer>
</programme>

File: Transform.xslt

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

  <body>
    <center>
      <h1>Programme</h1>
      <xsl:for-each select="/programme/composer">
        <h2>
          <xsl:value-of
            select="concat(fullname, ' (', born, '-', died, ')')" />
        </h2>
        <xsl:variable name="c" select="." />
        <xsl:for-each
          select="/programme/opera[composer=$c/@name]">
          <p>
            <xsl:value-of select="title" />
          </p>
        </xsl:for-each>
      </xsl:for-each>
    </center>
  </body>
</html>

Output:

<html>
   <body>
      <center>
         <h1>Programme</h1>
         <h2>Mozart (1756-1791)</h2>
         <p>A</p>
      </center>
   </body>
</html>

 








Related examples in the same category

1.Define variable and set value
2.Define variable
3.Output variable
4.Assign value from variable to attribute
5.Use for-each to loop through variable
6.Use constant value from variable
7.Fill variable with the returned value from a function
8.Variable scope
9.substring function with variable
10.Reference variable three times
11.Compare variable
12.Define number type variable
13.Math calculation
14.value-of and math calculation
15.Variable with number type
16.number level="any" count="chapter|sect1|sect2|sect3" format="Ww - " ordinal="yes"
17.number level="any" count="chapter|sect1|sect2|sect3" format="w - " lang="de"
18.number level="any" count="chapter|sect1|sect2|sect3" format="w - " lang="pl"
19.Thai numbering