[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Need to wrap XML in tags
Subject: RE: [xsl] Need to wrap XML in <![CDATA[...]]> tags From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 4 Aug 2003 18:50:46 +0100 |
Your solution would work if you were using an XSLT processor that supported disable-output-escaping. It seems you aren't. The fact that d-o-e is non-portable is one of the reasons we often give for avoiding it. Another approach might be to use saxon:serialize(), or an equivalent home-grown extension function of your own. Best solution would be to find the person who designed this XML structure and get them to mend their ways. Or you could devise a sanitary XML representation of the data, generate that, and then postprocess it using non-XSLT techniques (e.g. change <cdata>...</cdata> to <![CDATA[...]]> using a text editor). Michael Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Jason Cunningham > Sent: 04 August 2003 15:19 > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Need to wrap XML in <![CDATA[...]]> tags > > > Hi, > > I've got a strange requirement to transform > > <sample> > <name> > <firstName>Mickey</firstName> > <lastName>Mouse</lastName> > </name> > </sample> > > into > > <sample> > <person> > <![CDATA[ > <name> > <firstName>Mickey</firstName> > <lastName>Mouse</lastName> > </name> > ]]> > </person> > </sample> > > I've written this XSL > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="xml"/> > > <xsl:template match="@*|node()"> > <xsl:copy> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > <xsl:template match='*[name() = "sample"]'> > <sample> > <person> > <xsl:text disable-output-escaping="yes"> > <![CDATA[ > </xsl:text> > <xsl:copy-of select="./node()"/> > <xsl:text disable-output-escaping="yes"> > ]]> > </xsl:text> > </person> > </sample> > </xsl:template> > > </xsl:stylesheet> > > that gets me to > > <sample> > <person> > <![CDATA[ > <name> > <firstName>Mickey</firstName> > <lastName>Mouse</lastName> > </name> > ]]> > </person> > </sample> > > Unfortunately, this isn't good enough, for the system I am > interfacing with. > I can not figure out how I can insert an unescapted '<' > into the output - > I've read that '<' isn't allowed inside the xsl:text tag. > > Has anyone any ideas? > > Thanks for your time, > > Jason > > _________________________________________________________________ > Find a cheaper internet access deal - choose one to suit you. > http://www.msn.co.uk/internetaccess > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Need to wrap XML in <![CD, David Carlisle | Thread | [xsl] Pound sign encoding issue, Matt Trimmer |
[xsl] Using key() from outside the , Peter Flynn | Date | RE: [xsl] Pound sign encoding issue, Michael Kay |
Month |