Re: [xsl] select first word

Subject: Re: [xsl] select first word
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Tue, 18 Dec 2007 01:14:15 +0100
What about:


Jim_Albright@xxxxxxxxxxxx wrote:

I have <xsl:value-of select=
"translate(.,'abcdehijklmnorstuvyz{|HIJKA@','aaaaaeeeeiiiioooooEEEEAA')"/>

make this:


<xsl:variable name="from" select="'abcdehijklmnorstuvyz{|HIJKA@'" />
<xsl:variable name="to" select="'aaaaaeeeeiiiioooooEEEEAA'" />
<xsl:value-of select="translate(., $from, $to)" />



<xsl:value-of select="substring-before(.,' ')"/> <xsl:value-of select="substring-before(.,',')"/>

So how do I put this together?

and make that (together):


<xsl:value-of select="substring-before(substring-before(.,' '), ', ')" />

and, all together now (after the Beatles)

<xsl:value-of select="substring-before(substring-before(translate(., $from, $to),' '), ', ')" />

though, in terms of efficiency (and assuming the processor doesn't "see" how to optimize this) you might want this, even:

<xsl:value-of select="translate(substring-before(substring-before(.,' '), ', '), $from, $to)" />

for readability you can add whitespace. Now it becomes something like:

<xsl:value-of select="
       translate(
          substring-before(
              substring-before(.,' '), ', '),
       $from, $to)" />


Cheers, -- Abel Braaksma

Current Thread