[xsl] Unescaping CDATA and turning it into a variable?

Subject: [xsl] Unescaping CDATA and turning it into a variable?
From: "rus tle profrustyleafiii@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 12 Jun 2019 14:51:11 -0000
Hello List,

Given a node such as this...

<Fragment>
	<![CDATA[This is some <span class="meta" cid="0b>cheese</span> and <span
class="meta" cid="1b>chocolate</span>!]]>
</Fragment>

If I use disable-output-escaping:

<xsl:value-of disable-output-escaping="yes" select=bFragment/text()"/>

It renders with the "markup":

I love <span class="meta" cid="0b>cheese</span> and <span class="meta"
cid="1b>chocolate</span>!</td>

Which is great. Happy.

But I need to target the spans and the span content and use it elsewhere in
the stylesheet. Is it possible to extract the text with bmarkupb as a
variable or a parameter so I can re-use it before rendering?

Ideally I would have something likeb&

<xsl:variable name="markup">
       <xsl:value-of select="$FRAGMENT" disable-output-escaping="yes" />
 </xsl:variable>

So I could get the text bcheese".

<xsl:value-of select=b$markup/span[cid=0]/text()b/>

I hope my question is clear? This is a simplified version of what I am trying
to do - but I am having great difficulty even with thisb&

Thanks!

Current Thread