[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Recursive function problem


Subject: Re: [xsl] Recursive function problem
From: Nic Gibson <nicg@xxxxxxxxxx>
Date: Wed, 30 Jun 2010 10:06:54 +0000

On Wed, Jun 30, 2010 at 11:00:00AM +0100, David Carlisle wrote:
> 
> <xsl:template match="nameGrp">
> <xsl:variable name="nameattrs" select="@foreNames,@mainName"/>
> <name>
>  <xsl:analyze-string select="."
>   regex="({string-join($nameattrs,')|(')})">
> <xsl:matching-substring>
>  <xsl:element name="{
> if(regex-group(1)=.) then 'fname'
> else 'sname'
> }"><xsl:value-of select="."/></xsl:element>
> </xsl:matching-substring>
> <xsl:non-matching-substring>
> <xsl:value-of select="."/>
> </xsl:non-matching-substring>
>  </xsl:analyze-string>
> </name>
> </xsl:template>
> 
> </xsl:stylesheet>

Yes, that works fine as long as I want to write a template for each 
of the seven elements that I want do this with and handle the fact that
some of them have 8 attributes that need to be modified. Additionally,
I don't know in advance if (in a very contrived example) the name
is going to be something like "Alexander Smith, Alexander Jnr".

cheers

nic
> 
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
> 
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs. ________________________________________________________________________


Current Thread