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