xsl-list
[Top] [All Lists]

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

2019-06-12 10:02:47
On 12.06.2019 16:51, rus tle profrustyleafiii(_at_)yahoo(_dot_)co(_dot_)uk 
wrote:
Hello List,

Given a node such as this...

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

If I use disable-output-escaping:

<xsl:value-ofdisable-output-escaping="yes"select=“Fragment/text()"/>

It renders with the "markup":

I love <spanclass="meta"cid="0”>cheese</span> and
<spanclass="meta"cid="1”>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 “markup” as a
variable or a parameter so I can re-use it before rendering?

Ideally I would have something like…

<xsl:variablename="markup">
<xsl:value-ofselect="$FRAGMENT"disable-output-escaping="yes"/>
</xsl:variable>

In XSLT 3 you can use
  <xsl:variable name="markup" select="parse-xml-fragment(Fragment)"/>
to have the variable bound to the result of parsing the string value of
the Fragment element as an XML fragment.

Then you can use XPath or apply-templates, as with any nodes.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>