次の構造を持つ XML ドキュメントを変換する必要があります。
<NODEA d="8" m="1" xxxxx="WWWWWWWWWWWWWW"/>
<NODEA d="16" m="1" xxxxx="somethingelse"/>
<NODEB d="1" m="1" yyyyy="xx"/>
<NODEB d="2" m="1" yyyyy="xx"/>
<NODEB d="3" m="1" yyyyy="yy"/>
<NODEB d="4" m="1" yyyyy="zz"/>
<NODEB d="5" m="1" yyyyy="aa"/>
<NODEB d="6" m="1" yyyyy="ss"/>
<NODEB d="7" m="1" yyyyy="33"/>
<NODEB d="8" m="1" yyyyy="AAAAAAAAAAAAA"/>
<NODEB d="9" m="1" yyyyy="qq"/> etc
xsltで、属性「d」が等しいときに2つのノードをマージしようとします
<NewNode>
<d>8</d>
<m>1</m>
<xxxxx>WWWWWWWWWWWWWW</xxxxx>
<yyyyy>AAAAAAAAAAAAA</yyyyy>
</NewNode>
こうすることで
<xsl:template match="NODEB">
<xsl:element name="NewNode">
<xsl:apply-templates select="@d" />
<xsl:apply-templates select="@m" />
<xsl:apply-templates select="@yyyyy" />
<xsl:element name="xxxxx" >
<xsl:for-each select="//NODEA">
<xsl:if test=".@d eq @d">
<xsl:value-of select=".@xxxxx" />
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:element>
したがって、ifステートメントは明らかに機能しませんが、それ以外の場合はどうすればよいですか?