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

RE: [xsl] Replacing all Occurences of a String


Subject: RE: [xsl] Replacing all Occurences of a String
From: "Chris Bayes" <chris@xxxxxxxxxxx>
Date: Thu, 30 Aug 2001 17:03:08 +0100

Roger,
Have a look at
http://www.biglist.com/lists/xsl-list/archives/200008/msg01300.html for
some ideas on internationalization. You can extend this idea to handle
your month conversions if your datafile looked like
<dictionary>
  <months lang="en">
    <month abbr="jan">january</month>
    ...
    ...
    <month abbr="dec">december</month>
  </months>
  <months lang="fr">
    <month abbr="jan">janvier</month>
    ...

Then to convert $monthtotrans from french to english abbreviation
something like
   <xsl:value-of
select="document('months.xml')/dictionary/months[@lang='en']/month[posit
ion()/document('months.xml')/dictionary/months[@lang='fr']/month[@abbr=$
monthtotrans]/@abbr
Or
<xsl:variable name="monthnum"
select="count(preceding-sibling::*/document('months.xml')/dictionary/mon
ths[@lang='fr']/month[@abbr=$monthtotrans])" />
<xsl:value-of
select="document('months.xml')/dictionary/months[@lang='en']/month[$mont
hnum]/@abbr" />

Ciao Chris

XML/XSL Portal
http://www.bayes.co.uk/xml


> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Roger
> Sent: 30 August 2001 15:45
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: AW: [xsl] Replacing all Occurences of a String
> 
> 
> Hi David
> The problem is I have all months and also all languages, like:
> 
> <sfzSprache>Italian/German/Swiss-German/French</sfzLanguage>
> 
> and I want in the end:
> 
> <sfzSprache>Italienisch/Deutsch/Schweizerdeutsch/Französisch</
> sfzLanguage>
> 
> 
> If I only would have "German" or "October" it would be easy. 
> I would then transform it like this:
> 
> <xsl:choose>
> <xsl:when test="string-length(sfzSprache)&gt;0">
> Sprache:
> <xsl:choose>
> 	<xsl:when test="string(sfzSprache)='German'">
>  Deutsch <br />
>    </xsl:when>
>    <xsl:when test="string(sfzSprache)='Italian'">
>  Italienisch <br />
>    </xsl:when>
>   <xsl:when test="string(sfzSprache)='Swiss-German'">
>  Schweizerdeutsch <br />
>    </xsl:when>
>    <xsl:when test="string(sfzSprache)='Rhaeto-romanic'">
>  Rätoromanisch <br />
>    </xsl:when>
>    <xsl:when test="string(sfzSprache)='French'">
>  Französisch <br />
>    </xsl:when>
>    <xsl:when test="string(sfzSprache)='English'">
>  Englisch<br />
>    </xsl:when>
> 	<xsl:when test="string(sfzSprache)='Chinese'">
>  Chinesisch <br />
>    </xsl:when>
>    <xsl:when test="string(sfzSprache)='Russian'">
>  Russisch <br />
>    </xsl:when>
> <xsl:otherwise>
> 	<xsl:value-of select="sfzSprache"/><br />
> </xsl:otherwise>
> </xsl:choose>
> 
> 
> Thanx for any additional hints
> best
> roger
> 
> 
> 
> 
>   <sfzRelease>January, February 2001</sfzRelease>
> 
>   I want at the end:
> 
>   <sfzRelease>Januar, Februar 2001</sfzRelease>
> 
> Hmm, I don't suppose translate(sfzRelease,'y','') works in 
> general does it. (If only natural languages followed regular 
> paterns like
> mathematics....)
> 
> If you have a replace string template then probably the 
> easiest thing to do is make a variable containg a node set of 
> replacements eg
> 
> <y en="January" de="Januar"/>
> 
> 
> then just make a recusive template that works down a list of 
> y nodes, doing a replacement using the first y node then 
> calling itself on the rest of the list.
> 
> David
> 
> _____________________________________________________________________
> This message has been checked for all known viruses by Star 
> Internet delivered through the MessageLabs Virus Scanning 
> Service. For further information visit 
> http://www.star.net.uk/stats.asp or > alternatively call Star 
> Internet for details on the Virus Scanning Service.
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 


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



Current Thread