Subject: RE: [xsl] Re: Method for delimiting template results From: "Conal Tuohy" <conalt@xxxxxxxxxxxxxxx> Date: Thu, 6 Mar 2003 11:34:58 +1300 |
Perhaps you could try: <xsl:apply-templates select=".//input[@type='checkbox']"/> ? > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Ted > Stresen-Reuter > Sent: Thursday, 6 March 2003 11:06 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Re: Method for delimiting template results > > > Thanks for the reply. Upon reflection, I realized that I had the > solution and then saw your email. However, I also realized that this > particular solution won't work if my checkbox elements are > inside of a > TABLE element (and they are) because the context for the > position() and > last() is the enclosing TD element. > > Any suggestions on how I can "globalize" the context short of > doing two > passes on the xml source (to reduce it to, say, just the FORM > element)? > > Ted > > On Wednesday, March 5, 2003, at 03:53 PM, Dimitre Novatchev wrote: > > > Hi Ted, > > > > The following transformation produces the wanted result. > Note the use > > position(). > > > > <xsl:stylesheet version="1.0" > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > > > <xsl:output method="text" /> > > <xsl:strip-space elements="*"/> > > > > <xsl:template match="/"> > > array(<xsl:apply-templates/>) > > </xsl:template> > > > > <xsl:template match="input[@type = 'checkbox']"> > > <xsl:text>"</xsl:text> > > <xsl:value-of select="@name" /> > > <xsl:text>"</xsl:text> > > <xsl:if test="not(position() = last())">,</xsl:if> > > </xsl:template> > > > > </xsl:stylesheet> > > > > When applied on this source.xml: > > > > <t> > > <input type="checkbox" name="first"/> > > <input type="checkbox" name="second"/> > > <input type="checkbox" name="third"/> > > </t> > > > > The result is: > > > > array("first","second","third") > > > > > > > > ===== > > Cheers, > > > > Dimitre Novatchev. > > http://fxsl.sourceforge.net/ -- the home of FXSL > > > > > > "Ted Stresen-Reuter" <tedmasterweb@xxxxxxx> wrote in message > > news:3B94301D-4F4E-11D7-92A9-00039315D01C@xxxxxxxxxx > >> Hi, > >> > >> Periodically I have a need to delimit the output from a template. > >> > >> In PHP I push all the variables onto an array and then "join" them > >> with > >> a ", " into a string. Works great. > >> > >> In XSLT I would start by using the following: > >> > >> <xsl:template match="/">array(<xsl:apply-templates > >> />)</xsl:template> > >> <xsl:template match="input[@type = 'checkbox']">"<xsl:value-of > >> select="@name" />"</xsl:template> > >> > >> The problem here, however, is that the result would consist of: > >> array("fist""second""third") and what I want is: > >> array("first","second","third") > >> > >> Any suggestions on how to do that in XSLT? > >> > >> Ted > >> > >> > >> XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > >> > >> > > > > > > > > > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > > > > > 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] Re: Method for delimiting, Ted Stresen-Reuter | Thread | Re: [xsl] Re: Method for delimiting, Ted Stresen-Reuter |
Re: [xsl] two cols in one table (a , Dionisio Ruiz de Zar | Date | [xsl] Re:, bix xslt |
Month |