Re: [xsl] efficiently extracting a capture group from analyze-string()

Subject: Re: [xsl] efficiently extracting a capture group from analyze-string()
From: "Imsieke, Gerrit, le-tex gerrit.imsieke@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 4 Jun 2022 16:12:56 -0000
Why not use the classic XPath 2.0 replace function?

replace($file, '^.+/my-(w+)\.xml$', '$1')

On 04.06.2022 17:30, Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx wrote:
Hi everyone!

Given some filename string like

B <xsl:variable name="file" select="'path/my-sometype.xml'"/>

Ibd like to extract the bmy-(\w+)b part of the filename using analyze-string(). So far I have

B <xsl:variable name="my-file-type" select="data(analyze-string($file, 'my-(\w+)')//fn:group[1])"/>

which works by extracting the <group> descendant from the <analyze-string-result> tree, then converting it to text. Is there a more concise way to do this?

I had to define

B xmlns:fn=http://www.w3.org/2005/xpath-functions <http://www.w3.org/2005/xpath-functions>

in my stylesheet for fn:group to match, and Ibm not sure if therebs a better way to do that too.

Thanks!

* Chris

Current Thread