xsl-list
[Top] [All Lists]

Re: [xsl] Problem processing unescaped nested span TEXT with parse-xml-fragment

2019-04-04 06:07:42
On 04.04.2019 12:47, rus tle profrustyleafiii(_at_)yahoo(_dot_)co(_dot_)uk 
wrote:

The stylesheet code looks like this:


   <xsl:variable name="FRAGMENTTEXT" select="./Content/Fragment[contains(text(), 
'&lt;span ')]"/>
<xsl:if test="$FRAGMENTTEXT!=''">
<xsl:variable select="parse-xml-fragment($FRAGMENTTEXT)" name="UNESCAPEDTEXT"/>
<xsl:call-template name="annotations">
<xsl:with-param select="$UNESCAPEDTEXT" name="UNESCAPEDTEXT"/>
<xsl:with-param select="." name="EVENT"/>
</xsl:call-template>
</xsl:if>

Unescaped FRAGMENT TEXT example:

<Fragment>&lt;span&gt;&lt;span class="meta" cid="2"&gt;sassafras
plant&lt;/span&gt; is a slightly black oil called &lt;span class="meta"
cid="3"&gt;safrole&lt;/span&gt;.  Synthetic manufacturing methods are
used to convert the safrole to &lt;span class="meta"
cid="4"&gt;MDMA&lt;/span&gt;. Relative small amounts are required to
create large amounts of &lt;span class="meta"
cid="5"&gt;ecstacy&lt;/span&gt; pills.&lt;/span&gt;</Fragment>

Unescaped the Fragment looks like this:

<span>
<span class="meta" cid="2">sassafras plant</span>
is a slightly black oil called
<span class="meta" cid="3">safrole</span>.
Synthetic manufacturing methods are used to convert the safrole to
<span class="meta" cid="4">MDMA</span>
. Relative small amounts are required to
create large amounts of
<span class="meta" cid="5">ecstacy</span> pills.
</span>


The error:

*Severity:* fatal
*Description:* A sequence of more than one item is not allowed as the
first argument of fn:parse-xml-fragment() ("In the rain forests of <span
c...", "<span><span class="meta" cid="...")

Can ./Content/Fragment[contains(text(), '&lt;span ')] select more than
one Fragment element?

Then you would need e.g. $FRAGMENTTEXT!parse-xml-fragment(.) to process
them all in one go.
--~----------------------------------------------------------------
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>