Subject: [xsl] xslt2 complex content sequences From: David Carlisle <davidc@xxxxxxxxx> Date: Mon, 5 Sep 2005 16:44:02 +0100 |
What's the simplest XSLT 2 equivalent of the Xquery <a>{1,2}{3}</a> Xquery (like XSLT) puts spaces between (the string value of) atomic values when constructing element content, but doesn't put spaces between enclosed expressions (which are like Attribute Value Templates, except they work in element content as well as attributes in xquery) So you get <a>1 23</a> In XSLT, obvious translations are things like <a> <xsl:sequence select="1"/> <xsl:sequence select="2"/> <xsl:sequence select="3"/> </a> or <a> <xsl:sequence select="(1,2)"/> <xsl:sequence select="3"/> </a> But these are equivalent and produce space separated: <a>1 2 3</a> I came up with putting in an element node to stop the automatic space addition, then removing the extra node: <a> <xsl:variable name="x"> <xsl:sequence select="1"/> <xsl:sequence select="2"/> <x/> <xsl:sequence select="3"/> </xsl:variable> <xsl:copy-of select="$x/node()[not(self::x)]"/> </a> Which produces the right thing, but that seems a bit unnatural. I have a feeling I've missed some construction possibility that lets me control this spacing directly?.... David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Transcode strings into Nu, David Carlisle | Thread | Re: [xsl] xslt2 complex content seq, David Carlisle |
RE: [xsl] Testing attribute name an, Michael Kay | Date | Re: [xsl] Conditional merge of 2 XM, Thomas Tarpin-Lyonne |
Month |