[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Mark Wilson wrote:
Does the following do what you want?
<xsl:template match="Person">
<xsl:copy>
<xsl:value-of select="replace(., '(\w+)(\s+\(\w+\))?(,\s+\w+)', '$1$3$2')"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
--
Re: [xsl] regex question about reorganizing a string in XSLT
Subject: Re: [xsl] regex question about reorganizing a string in XSLT From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Mon, 31 Aug 2009 13:55:48 +0200 |
Mark Wilson wrote:
What I really want to do is reorganize strings that contain, for example
"(Mrs),", " (Dr)," and " (senior),". (There is a space in front of each that
also needs to be removed during the reorganization.) Such that:
<Person>Jones (senior), John</Person> becomes <Person>Jones, John (senior)</Person>
But only when the <Person> element contains the substring "),"; all other <Person>elements should not be touched For instance,
<Person>Smith, Ralph J.</Person>
Would remain unchanged.
Does the following do what you want?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template>
<xsl:template match="Person">
<xsl:copy>
<xsl:value-of select="replace(., '(\w+)(\s+\(\w+\))?(,\s+\w+)', '$1$3$2')"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
--
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] regex question about reorgani, Mark Wilson | Thread | Re: [xsl] regex question about reor, Mark Wilson |
RE: [xsl] Extracting data from exte, Joga Singh Rawat | Date | Re: [xsl] Extracting data from exte, Ganesh Babu N |
Month |