xsl-list
[Top] [All Lists]

RE: Sorting and replacing content

2004-09-01 04:51:07
Hi,

What I have learned from this forum is to be very precise 
when making an
example to try to simplify a real life situation.

In the real case the tags <A> to <E> are more like <Order1> 
to <Order5> and
<a> to <e> are like <Show1> to <Show5>. That will make the 
use of uppercase
/ lowercase functions useless.

<Root>
    </...>
    <Show1>10</Show1>
    <Show2>20</Show2>
    <Show3>30</Show3>
    <Show4>40</Show4>
    <Show5>50</Show5>
    </...>
    ...
    ...
    <Order1>3</Order1>
    <Order2>5</Order2>
    <Order3>1</Order3>
    <Order4>2</Order4>
    <Order5>4</Order5>
    </..>
</Root>

And it needs to be:

<no>30</no>
<no>40</no>
<no>10</no>
<no>50</no>
<no>20</no>

In that case,

  <xsl:template match="Root">
    <xsl:for-each select="*[starts-with(name(), 'Order')]">
      <xsl:sort select="." data-type="number"/>
      <no>
        <xsl:value-of select="../*[name() = concat('Show', 
substring(name(current()), 6))]"/>
      </no>
    </xsl:for-each>
  </xsl:template>

Oh-I-do-hate-flat-hunting-stressed-cheers,

Jarno - Madam Zu: March 2004


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