Subject: Re: [xsl] Asymmetric string handling with processing-instructions From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 14 Sep 2023 16:08:41 -0000 |
On 14.09.2023 17:27, Martin Honnen martin.honnen@xxxxxx wrote: > > > On 14.09.2023 16:05, Michael Mueller-Hillebrand > michael.mueller-hillebrand@xxxxxxxxx wrote: >> >> My bottom line: If you want to use saxon:get-pseudo-attribute(), >> because it is elegant and efficient, and it could be possible you >> have user content in processing instruction, you have two additional >> tasks: >> >> * When using xsl:processing-instruction or other ways to create >> processing instructions, make sure to escape the five XML characters >> >> * When accessing PI string values without saxon:get-pseudo-attribute, >> add an unescaping routine to avoid double escaped content. >> >> How do you deal with this asymmetry? >> > > For the escaping in your sample, one way to ensure the ampersand is > escaped could be > > > B B B <xsl:template match="p"> > > B B B B B B B <xsl:processing-instruction name="my" select="'value="' > || string() => serialize(map { 'method' : 'xml' }) || '"'"/> > > B B B </xsl:template> > > Should also work for the less than sign but probably not for double > quotes. > For the string value using `parse-xml-fragment` should help e.g. B B <xsl:template match="processing-instruction(my)"> B B B B B B B <p> B B B B B B B B B B B <xsl:text>String: </xsl:text> B B B B B B B B B B B <xsl:value-of select="string(.) => parse-xml-fragment()"/> B B B B B B B </p> gives <p>String: value="Marks & Spencer PI"</p>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Asymmetric string handlin, Martin Honnen martin | Thread | Re: [xsl] Asymmetric string handlin, Michael Mueller-Hill |
Re: [xsl] Asymmetric string handlin, Martin Honnen martin | Date | Re: [xsl] Asymmetric string handlin, Michael Mueller-Hill |
Month |