xsl-list
[Top] [All Lists]

Re: Reverse Tokens Template

2003-05-15 11:25:10
Hi Stephen,

This is a really easy task. Using FXSL one would write the following:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
 xmlns:vendor="urn:schemas-microsoft-com:xslt"
 exclude-result-prefixes="vendor"


 <xsl:import href="strSplit-to-Words.xsl"/>

 <xsl:output method="text"/>

  <xsl:template match="/">
    <xsl:variable name="vrtfWords">
      <xsl:call-template name="str-split-to-words">
        <xsl:with-param name="pStr" select="/*"/>
        <xsl:with-param name="pDelimiters" select="' ,.;&#9;&#10;'"/>
      </xsl:call-template>
    </xsl:variable>

    <xsl:for-each select="vendor:node-set($vrtfWords)/word">
      <xsl:sort select="position()" order="descending" data-type="number"/>
      <xsl:value-of select="."/>
      <xsl:if test="position() != last()">
        <xsl:text> </xsl:text>
      </xsl:if>
    </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>

When applied on this source.xml:

<t>Hello world</t>

the desired result is produced:

world Hello



Hope this helped.


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL


"Greene, Stephen" <Stephen(_dot_)Greene(_at_)nrc(_dot_)ca> wrote in message
news:10C94843061E094A98C02EB77CFC32875874D8(_at_)nrcmrdex1d(_dot_)imsb(_dot_)nrc(_dot_)ca(_dot_)(_dot_)(_dot_)
Hi,

I have been trying to modify (un-sucessfully) Dimitre Novatchev's template
to reverse the order of "words" in a string (words being character
substrings seperated by a space character). Such that the string "hello
world" would become "world hello".
I was wondering if anyone would be able to offer any hints on how to
accomplish this.

I have tried modifying the template but as the word length is variable,
(and
the words need to go back into a string, and not be output) I have been
unsuccessful in concatenating the string after removing one word at a
time.

If this is not possible, is there a way in which I could remove one word
at
a time from the end of the string?
(in a substring-before($theString, ' ') like way) Instead of the
beginning?

I thank you for your time and for your help,

Regards,

Stephen Greene

National Research Council of Canada

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






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



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