This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Need better ways to do this..
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] Need better ways to do this..
- From: "Sudhir Malhotra" <sudhirmalhotra123 at hotmail dot com>
- Date: Thu, 31 May 2001 19:03:29 -0500
- Reply-To: xsl-list at lists dot mulberrytech dot com
I am sure there are better ways to accomplish what I am
doing and trying to do. I would be thankful if you could
suggest one. I have explained my approach in the comments in
the XSL segment.
Questions:
1. How to prevent the output being generated for td[4], td[5], td[6] and
td[7] if td[1] fails my validation as shown in the XSL segment?
2. How to avoid repitition of the XSL code for processing
td[4], td[5], td[6] and td[7]?
Thank you for your suggestions.
-sm
--Input XML segment--
<tr>
<td>19960529-00:00:00.000 CDT</td>
<td>115.269997</td>
<td>49.669998</td>
<td>2.320717</td>
<td>2.314239</td>
<td>2.295786</td>
<td>2.332692</td>
<td>0.018453</td>
</tr>
<tr>
<td>19960530-00:00:00.000 CDT</td>
<td>112.650002</td>
<td>49.019900</td>
<td>2.298042</td>
<td>2.308282</td>
<td>2.290944</td>
<td>2.325620</td>
<td>0.017338</td>
</tr>
------
-- XSL segment --
<!-- Look for the timestamp, and validate it. -->
<xsl:template match="tr/td[1]">
<xsl:variable name="currentDate" select="."/>
<xsl:variable name="isValid" select="datelogicext:checkValidity(
$StartDateObject, string( $currentDate ))"/>
<xsl:choose>
<!-- If valid, print the timestamp within XData tag -->
<!-- Then go for other values in tr/td[4], tr/td[5], tr/td[6] and tr/td[7]
-->
<!-- The code is working fine when the date is valid -->
<xsl:when test=" $isValid = 'YES' ">
<XData>
<xsl:value-of select="."/>
</XData>
</xsl:when>
<xsl:otherwise>
<!-- A futile attempt to skip to next tr and not process this tr
since td[1] is invalid. -->
<xsl:apply-templates mode="INVALID" select="tr/td"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template mode="INVALID" match="tr/td" >
</xsl:template>
<!-- COPY PROCESSING for positions 4-7 -->
<xsl:template match="tr/td[4 ]">
<xsl:choose>
<xsl:when test=" . = 'NA' ">
<YData>-9999</YData>
</xsl:when>
<xsl:otherwise>
<YData><xsl:value-of select="."/></YData>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="tr/td[5 ]">
<xsl:choose>
<xsl:when test=" . = 'NA' ">
<YData>-9999</YData>
</xsl:when>
<xsl:otherwise>
<YData><xsl:value-of select="."/></YData>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="tr/td[6 ]">
<xsl:choose>
<xsl:when test=" . = 'NA' ">
<YData>-9999</YData>
</xsl:when>
<xsl:otherwise>
<YData><xsl:value-of select="."/></YData>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="tr/td[7 ]">
<xsl:choose>
<xsl:when test=" . = 'NA' ">
<YData>-9999</YData>
</xsl:when>
<xsl:otherwise>
<YData><xsl:value-of select="."/></YData>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
--------------------
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list