Subject: [xsl] Using saxon:parse on processing instructions From: "Spencer Tickner spencertickner@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 18 Dec 2017 20:18:10 -0000 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL-List Guidelines, Tommie Usdin btusdin | Thread | Re: [xsl] Using saxon:parse on proc, Martin Honnen martin |
[xsl] XSL-List Guidelines, Tommie Usdin btusdin | Date | Re: [xsl] Using saxon:parse on proc, Martin Honnen martin |
Month |