xsl-list
[Top] [All Lists]

Removing duplicates

2002-10-22 09:18:59
Howdy,

I need to make certain that I don't print the same value twice on a detail line. I have up to 6 values, and I've been trying to brute force it, by making certain it's not equal to a previous item (see below). I display the RC, unless a corresponding TRC exists. BTW, the code below doesn't work (still trying to iron out the kinks). Is there a shorter way to do this? (i.e., one that actually uses XPath :-)

XML INPUT:
<RCDATA>
  <RCDATALINE>
    <RC>66</RC>
    <TRC>02</TRC>
  </RCDATALINE>
  <RCDATALINE>
    <RC>01</RC>
    <TRC>02</TRC>
  </RCDATALINE>
  <RCDATALINE>
    <RC></RC>
    <TRC></TRC>
  </RCDATALINE>
  <RCDATALINE>
    <RC></RC>
    <TRC></TRC>
  </RCDATALINE>
  <RCDATALINE>
    <RC></RC>
    <TRC></TRC>
  </RCDATALINE>
  <RCDATALINE>
    <RC></RC>
    <TRC></TRC>
  </RCDATALINE>
</RCDATA>


XSL INPUT:
(BTW, I have a similar/identical template for TRC)

<xsl:for-each select="RCDATALINE">
  <xsl:choose>
    <xsl:when test="RCDATALINE[1]">
    <xsl:apply-templates select="RC"/>
    </xsl:when>
    <xsl:when test="RCDATALINE[2] and RC[.!=RC[1]]">
    <xsl:apply-templates select="RC"/>
    </xsl:when>
    <xsl:when test="RCDATALINE[3] and RC[.!=RC[1]] and RC[.!=RC[2]]">
    <xsl:apply-templates select="RC"/>
    </xsl:when>
<xsl:when test="RCDATALINE[4] and RC[.!=RC[1]] and RC[.!=RC[2]] and RC[.!=RC[3]]">
    <xsl:apply-templates select="RC"/>
    </xsl:when>
<xsl:when test="RCDATALINE[5] and RC[.!=RC[1]] and RC[.!=RC[2]] and RC[.!=RC[3]] and RC[.!=RC[4]]">
    <xsl:apply-templates select="RC"/>
    </xsl:when>
<xsl:when test="RCDATALINE[6] and RC[.!=RC[1]] and RC[.!=RC[2]] and RC[.!=RC[3]] and RC[.!=RC[4]] and RC[.!=RC[5]]">
    <xsl:apply-templates select="RC"/>
    </xsl:when>
  </xsl:choose>
</xsl:for-each>


- Clay Leeds
- Web Developer/Programmer
- cleeds(_at_)medata(_dot_)com


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>