RE: [xsl] How to Tag Several Words in a Given String

Subject: RE: [xsl] How to Tag Several Words in a Given String
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 12 Oct 2005 08:55:00 +0100
Will the strings always be whole words? If so, I would do

<xsl:analyze-string select="String" regex="\s+">
  <xsl:non-matching-substring>
   <xsl:choose>
    <xsl:when test=". = $testStr">
     <validName><xsl:value-of select="."/></validName>
    </
    <xsl:otherwise>
     <xsl:value-of select="."/>
    </
   </
  </
</

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: UlyLee [mailto:ulyleeka@xxxxxxxxx] 
> Sent: 12 October 2005 05:26
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] How to Tag Several Words in a Given String
> 
> Hello,
> 
> I have this scenario, i have a string:
> 
> <String>Name1 and Name2 becomes Name3</String>
> 
> and have a set of valid strings that needs to tagged
> which i assigned to a variable:
> 
> <xsl:varible name="testStr" as:"xs:string*"
> select="('Name1', 'Name3')"/>
> 
> My desired output should be like this:
> 
> <String><validName>Name1</validName> and Name2 becomes
> <validName>Name3</validName></String>
> 
> I was thinking of using a for-each loop to process the
> matches, but i'm stuck into what procedures i need to
> put in the for-loop:
> 
> <xsl:for-each select="$testStr">
> <xsl:if test="contains(String,.)">
> ???
> </xsl:if>
> </xsl:for-each>
> 
> Am i going in the right direction here? or is there a
> better way to do this?
> 
> -- UlyLee
> 
> 
> 
> 	
> 		
> __________________________________ 
> Yahoo! Mail - PC Magazine Editors' Choice 2005 
> http://mail.yahoo.com

Current Thread