Subject: RE: [xsl] xslt2 complex content sequences From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 5 Sep 2005 18:51:05 +0100 |
> What's the simplest XSLT 2 equivalent of the Xquery > > <a>{1,2}{3}</a> Saxon compiles this XQuery into code equivalent to: <xsl:element name="a"> <xsl:sequence select="1,2"/> <xsl:text/> <xsl:sequence select="3"/> </xsl:element> The zero-length text node disappears when added to an element, but it stops the 2 and 3 being considered adjacent. You could of course convert all the values to text nodes "by hand" using xsl:value-of, which would eliminate all automatic spacing. That would seem more natural in XSLT. Michael Kay http://www.saxonica.com/ > > 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] xslt2 complex content seq, David Carlisle | Thread | Re: [xsl] xslt2 complex content seq, David Carlisle |
Re: [xsl] Testing attribute name an, Joris Gillis | Date | Re: [xsl] xslt2 complex content seq, David Carlisle |
Month |