Hello and thanks in advance for the help. I'm scratching my head on trying
to convert a string of serialized xml in a processing instruction back into
XML.
I'm restricted to XSLT 2.0 and am using Saxon 9.1. When I treat the simply
copy and past the xml into the stylesheet everything works (see variable
$s2), but when breaking the string out of the processing instruction the
elements remain serialized:
input:
<?xml version="1.0"?>
<root xmlns:bcl="http://bcl">
<?pi a="<bcl:e>Test</bcl:e>" ?>
</root>
stylesheet:
<?xml version='1.0'?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bcl="http://bcl"
xmlns:saxon="http://saxon.sf.net/">
<xsl:template match="root">
<test>
<xsl:apply-templates/>
</test>
</xsl:template>
<xsl:template match="processing-instruction('pi')">
<xsl:variable name="s1"><root xmlns:bcl="http://bcl"><xsl:value-of
select="replace(., '.*a=(.)(.+)?\1.*', '$2')"/></root></xsl:variable>
<xsl:variable name="s2"><root xmlns:bcl="http://bcl
"><bcl:e>Test</bcl:e></root></xsl:variable>
<!-- Not Expected: -->
<xsl:copy-of select="saxon:parse($s1)"/>
<!-- Expected: -->
<xsl:copy-of select="saxon:parse($s2)"/>
</xsl:template>
</xsl:stylesheet>
output:
<?xml version='1.0' ?>
<test xmlns:bcl="http://bcl" xmlns:saxon="http://saxon.sf.net/">
<root><bcl:e>Test</bcl:e></root>
<root><bcl:e>Test</bcl:e></root>
</test>
Any help or suggestion would be much appreciated.
Regards,
Spencer
--~----------------------------------------------------------------
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
--~--