This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
How to loop over duplicate nodes to output it only once
- From: "Uslu, Cihan Y (MED)" <Cihan dot Uslu at med dot ge dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 22 May 2002 14:49:56 -0500
- Subject: [xsl] How to loop over duplicate nodes to output it only once
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
I have the following code and XML fragment. How can I achieve to output
only once of duplicate nodes?
Thanks.
Cihan
XSL code
---------
<xsl:key name="course" match="course" use="LOCAL_CRSE_CD"/>
<xsl:template match="courses">
<courses>
<xsl:for-each select="course[generate-id()=
generate-id(key('course',LOCAL_CRSE_CD)[1])]">
<xsl:element name="course" use-attribute-sets="course1">
<coursetypes>
<xsl:for-each select="key('course',LOCAL_CRSE_CD)">
<xsl:for-each select="CRSE_SITE_CD">
<xsl:if
test="(self::CRSE_SITE_CD)">
<coursetypeid>
<xsl:value-of
select="."/>
</coursetypeid>
</xsl:for-each>
</xsl:for-each>
</coursetypes>
</xsl:element>
</xsl:for-each>
</courses>
</xsl:template
current output:
--------------------
<courses>
<course>
<LOCAL_CRSE_CD>CTD-ECPM</LOCAL_CRSE_CD>
<coursetypes>
<coursetypeid>U</coursetypeid>
<coursetypeid>U</coursetypeid>
</coursetypes>
<course>
desired output:
--------------------
<courses>
<course>
<LOCAL_CRSE_CD>CTD-ECPM</LOCAL_CRSE_CD>
<coursetypes>
<coursetypeid>U</coursetypeid>
</coursetypes>
<course>
...
...
</courses>
XML
---------------------
<courses>
<course num="806">
<LOCAL_CRSE_CD>CTD-ECPM</LOCAL_CRSE_CD>
<CRSE_SITE_CD>U</CRSE_SITE_CD>
</course>
<course num="2499">
<LOCAL_CRSE_CD>CTD-ECPM</LOCAL_CRSE_CD>
<CRSE_SITE_CD>U</CRSE_SITE_CD>
</course>
<course num="1145">
<LOCAL_CRSE_CD>CTD-EQD</LOCAL_CRSE_CD>
<CRSE_SITE_CD>U</CRSE_SITE_CD>
</course>
<course num="1146">
<LOCAL_CRSE_CD>CTD-EQD</LOCAL_CRSE_CD>
<CRSE_SITE_CD>U</CRSE_SITE_CD>
</course>
<course num="2405">
<LOCAL_CRSE_CD>DFSSMS100</LOCAL_CRSE_CD>
<CRSE_SITE_CD>U</CRSE_SITE_CD>
</course>
<course num="2406">
<LOCAL_CRSE_CD>DFSSMS100</LOCAL_CRSE_CD>
<CRSE_SITE_CD>U</CRSE_SITE_CD>
</course>
....
</courses>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list