xsl-list
[Top] [All Lists]

Re: [xsl] How to Parse String with Escaped XML Markup?

2021-01-15 09:56:47
The reason this works is that saxon:get-pseudo-attribute() expands entity and 
character references found in the PI content, so the resulting string contains 
angle brackets in place of "& lt ; " and "& gt ;".

Michael Kay
Saxonica

On 15 Jan 2021, at 15:36, Eliot Kimber ekimber(_at_)contrext(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Yes, I'm using the Saxon extension function to get the value of the @content 
pseudo-attribute.

What I didn't realize was that parse-xml and parse-xml-fragment() will handle 
the string as it comes, so this works:

<xsl:variable name="rawMarkup" select="saxon:get-pseudo-attribute('content')/>
<xsl:variable name="deletedContent" as="element()">
 <deletedContent xmlns="">
  <xsl:sequence select="parse-xml-fragment($rawMarkup)/>
 </deletedContent>
</xsl:variable>

So it's all good.

Cheers,

E.

--
Eliot Kimber
http://contrext.com


On 1/15/21, 9:22 AM, "Martin Honnen martin(_dot_)honnen(_at_)gmx(_dot_)de" 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

   Am 15.01.2021 um 15:58 schrieb Eliot Kimber 
ekimber(_at_)contrext(_dot_)com:
I researched this question in this list but I didn't find a recent response 
so I'm asking it again.

My specific requirement is to take the value of an Oxygen deleted content 
processing instruction and parse it back into elements in the context of an 
XSLT 3 transform.

The PI is:

<?oxy_delete author="ekimber" timestamp="20210115T085216-0600" 
content="&lt;body&gt;&lt;p&gt;&lt;ul 
id=&quot;ul_c5k_mhh_34b&quot;&gt;&lt;li&gt;li one&lt;/li&gt;&lt;li&gt;li 
two&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/body&gt;"?>

What I'm failing to work out is how to convert the value of the @content 
pseudo-attribute back into a proper XML string that I can pass to 
parse-xml().

   I think Saxon PE and EE have an extension function to access the pseudo
   attributes of a processing instruction value.

   So inside of oXygen with Saxon PE or EE this should be easz.




--~----------------------------------------------------------------
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>