Hi,
I have an XML file in which pages are appearing under the <link> tag. I want to sort those pages in ascending order. I'm doing the same with an XSLT but the result is not up to the mark.
I'm sorting the page numbers following page Numbers:
46, 56, 6, 64, 167, 176, 199, 203, 212, 248, 305, 315, 363
but the output is generating like this:
167, 176, 199, 203, 212, 248, 305, 315, 363, 46, 56, 6, 64
Whereas I need the output like this:
6, 46, 56, 64, 167, 176, 199, 203, 212, 248, 305, 315, 363
Can anybody suggest me how to rectify this?
XML File
Code:
<index-list>
<index-item><index-entry id="c51351-3902">aggression</index-entry><link>46</link><link>56</link><link>6</link><link>64</link><link>167</link><link>176</link><link>199</link><link>203</link><link>212</link><link>248</link><link>305</link><link>315</link><link>363</link></index-item>
</index-list>
Output generating
Code:
<index-list>
<index-item><index-entry id="c51351-3902">aggression</index-entry><link>167</link><link>176</link><link>199</link><link>203</link><link>212</link><link>248</link><link>305</link><link>315</link><link>363</link><link>46</link><link>56</link><link>6</link><link>64</link></index-item>
</index-list>
Output Required
Code:
<index-list>
<index-item><index-entry id="c51351-3902">aggression</index-entry><link>6</link><link>46</link><link>56</link><link>64</link><link>167</link><link>176</link><link>199</link><link>203</link><link>212</link><link>248</link><link>305</link><link>315</link><link>363</link></index-item>
</index-list>
XSLT
Code:
<xsl:template match="index-item">
<index-item>
<xsl:copy-of select="@*"/>
<xsl:if test="index-entry">
<xsl:apply-templates select="index-entry"/>
</xsl:if>
<xsl:for-each select="link">
<xsl:sort select="."/>
<link>
<xsl:copy-of select="@*"/>
<xsl:value-of select="."/>
</link>
</xsl:for-each>
</index-item>
</xsl:template>
Regards,
Anil Yadav