I have a problem. In my XML file I have:
<WELL WellName="A11"/>
<WELL WellName="B2"/>
<WELL WellName="A2"/>
<WELL WellName="A1"/>
<WELL WellName="A8"/>
<WELL WellName="B20"/>
I would like to get the results as:
A1
A2
A8
A11
B2
B20
I am not getting the above result with my XSL. What is the problem ?
<xsl:template match="ANALYSISRESULTS">
<xsl:variable name="wells" select="//WELL"/>
<xsl:for-each select="$wells">
<xsl:sort select="@WellName"/>
<xsl:sort select="substring(@WellName,2)"
data-type="number"/>
<xsl:for-each select="@*">
<xsl:value-of select="."/> <xsl:value-of
select="$tab"/>
</xsl:for-each>
<xsl:value-of select="$newline"/>
</xsl:for-each>
</xsl:template>
Thanks,
Priya
X 323
-----Original Message-----
From: Michael Kay [mailto:michael.h.kay@xxxxxxxxxxxx]
Sent: Thursday, April 25, 2002 12:43 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: Names of node attributes
> What is wrong with this XSL ? This does not give me the desired result
>
> <xsl:template match="WELL">
> <xsl:for-each select=".">
> <xsl:sort select="@WellName"/>
> <xsl:for-each select="@*">
> <xsl:value-of select="."/> <xsl:value-of
> select="$tab"/>
> </xsl:for-each>
> <xsl:value-of select="$newline"/>
> </xsl:for-each>
> </xsl:template>
>
Your template rule is called once to process each well. You can't sort the
wells within a template that only sees on of them. You can see it's
nonsense, because when you write:
> <xsl:for-each select=".">
> <xsl:sort select="@WellName"/>
the for-each selects a single node and then tries to sort it!
Move the sort to the corresponding xsl:apply-templates that processes all
the wells.
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|