RE: xsl structuring....

Subject: RE: xsl structuring....
From: Ben Robb <Ben@xxxxxxxxxx>
Date: Tue, 3 Oct 2000 00:56:38 +0100
There is certainly a more elegant way than the one I've just hacked out;
however, it gives the correct answer, and given it is nearly one o'clock in
the morning, I'm going to call it a night at this:

The trick lies in getting a nodeset containing all of the required "name"
tags, and then using the "preceding" axis in XPath to do what a "DISTINCT"
statement in SQL does...

Hope this helps,

Ben



<table>
<xsl:for-each select="//name[../../desRow or ../../asRow]">
<xsl:sort select="text()"/>

<xsl:variable name="thisVal" select="text()"/>

<xsl:if test="not(../preceding::name = $thisVal)">

<tr>
	<td><xsl:value-of select="text()"/></td>	
	<td><xsl:choose>
			<xsl:when test="not(/History/des/desRow[name/text()
= $thisVal]/qty/text())">-</xsl:when>
			<xsl:otherwise>
				<xsl:value-of
select="/History/des/desRow[name/text() = $thisVal]/qty/text()"/>
			</xsl:otherwise>
		</xsl:choose>
	</td>
	
	<td><xsl:choose>
			<xsl:when test="not(/History/asis/asRow[name/text()
= $thisVal]/qty/text())">-</xsl:when>
			<xsl:otherwise>
				<xsl:value-of
select="/History/asis/asRow[name/text() = $thisVal]/qty/text()"/>
			</xsl:otherwise>
		</xsl:choose>
	</td>
</tr>

</xsl:if>

</xsl:for-each>


</table>


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


Current Thread