RE: appeal for fn:match and fn:apply

> 
> It isn't builtin, but it isn't hard. After all, fn:match is intended
> to work similarly to the perl "m//", which some people have
> found to be useful :).
> 
> non-looping example:
> 
>    let $matches = fn:match("alpha/beta/gamma", "(\w+)/.*/(\w+)")
>    return <first>{$matches[1]}</first><second>{$matches[2]}</second>
> 
> looping example:
> 
>    for $matches in fn:match(fn:doc('stuff.xml'), 
> "(\w+)/.*/(\w+)", "g")
>    return
>    
> <match><first>{$matches[1]}</first><second>{$matches[2]}</seco
> nd></match>
> 
> I don't really see how this is much different in power than:
> 
>   <xsl:analyze-string select="document('stuff.xml')"
>   regex="(\w+)/.*/(\w+)">
>     <xsl:matching-substring>
>       <match>
>         <first><xsl:value-of select="regexp-group(1)"/></first>
>         <second><xsl:value-of select="regexp-group(2)"/></second>
>       </match>
>     </xsl:matching-substring>
>   </xsl:analyze-string>

The main difference is that there is no equivalent of
xsl:non-matching-substring.

How would you translate

<name>John F. /Kennedy/</name>

to

<name>John F. <surname>Kennedy</surname></name>


Regards,

Michael Kay

Received on Monday, 16 August 2004 22:17:52 UTC