Subject: RE: [xsl] A better way to build a comma-delimited list From: sara.mitchell@xxxxxxxxx Date: Wed, 15 May 2002 13:28:43 -0400 |
This may be a naive answer (given the previous posts), but it seems like you're simply looking at the addition of text the wrong direction. You need to add ", " *before* the 2nd, 3rd (and ultimately all but the first) columns. Would it work better if you did the test *before* the <xsl:value-of> and tested to see if this is not the first? If so, add the comma and space and then output the value of the column. Sara > -----Original Message----- > From: John Sands [mailto:WonkoWatson@xxxxxxxxx] > Sent: Tuesday, May 14, 2002 7:35 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] A better way to build a comma-delimited list > > > I have some XSLT that builds a SQL select statement from several input > documents. Here's a fragment that builds the column list by getting > each distinct column name from a separate file ($pbsdef) and checking > that is is defined in another file (referenced by variable $dbdef). > > <xsl:text>select </xsl:text> > <xsl:for-each > select="document($pbsdef)/pbsdef/column[not(@dbcolumn=precedin > g-sibling::column/@dbcolumn)]"> > <xsl:variable name="p" select="position()"/> > <xsl:variable name="l" select="last()"/> > <xsl:variable name="dbcolumn" select="@dbcolumn"/> > <xsl:for-each select="$dbdef"> > <xsl:if test="key('dbdef-cols', $dbcolumn)"> > <xsl:value-of select="$dbcolumn"/> > <xsl:if test="$p < $l"> > <xsl:text>, </xsl:text> > </xsl:if> > </xsl:if> > </xsl:for-each> > </xsl:for-each> > > The output of this fragment might be: > > select col1, col2, col3 > > This all works fine, except for one case - where the last column is > not found in the $dbdef file (where the 'if test=key' fails). Then I > get: > > select col1, col2, > > The position() < last() test doesn't work here. Can someone see a > better way to avoid that last comma? > > Thanks, > John Sands > > > 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] A better way to build a c, TSchutzerWeissmann | Thread | [xsl] With or without PSVI, Dan Holmsand |
RE: [xsl] Converting a string to sm, Stuart Celarier | Date | [xsl] disable escaping in xalan:nod, Ming |
Month |