[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Asymmetric string handling with processing-instru
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>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|