Subject: Re: Text based stage play scripts to XML
From: Andrew Welch <andrew.j.welch@xxxxxxxxx>
Date: Mon, 24 Jan 2011 13:32:17 +0000
|
> Let me explain another way:
> The sound a dog makes is woof and the sound a cat makes is bark.
>
> Say I am looking for animals in the above example, then I can search
> for anything that comes between "the sound" and "makes", but I don't
> know what lies between those two patterns, so I cannot search for dog
> or cat. What I need to do is to find something lying between two
> regular expressions matchin "the sound" and "makes" and wrap that
> something in an <animal> tag.
<xsl:variable name="regex" as="xs:string">(sound)(.*?)(makes)</xsl:variable>
<xsl:analyze-string select="." regex="{$regex}">
<xsl:matching-substring>
<xsl:value-of select="regex-group(1)"/>
<wrapped><xsl:value-of select="regex-group(2)"/></wrapped>
<xsl:value-of select="regex-group(3)"/>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
--
Andrew Welch
http://andrewjwelch.com
|