Hi Martin,
It worked perfectly!
Thanks,
Mark
--------------------------------------------------
From: "Martin Honnen" <Martin(_dot_)Honnen(_at_)gmx(_dot_)de>
Sent: Monday, August 31, 2009 4:55 AM
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject: Re: [xsl] regex question about reorganizing a string in XSLT
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/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--