[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Looping through multiple elements
Subject: RE: [xsl] Looping through multiple elements From: "Jones Mark Mr \(ITCS\)" <Mark.Jones@xxxxxxxxx> Date: Tue, 18 Mar 2008 16:32:36 -0000 |
Hi Andy, Thanks for the tip - that makes sense. I tried this; <xsl:for-each select="//dc:creatorid | //dc:creator1id | //dc:creator2id | //dc:creator3id"> <component group="authors_logins" name="value"> <xsl:value-of select="."/><xsl:if test="position() != last()">, </xsl:if> </component> </xsl:for-each> And the output was just this. <component name="value" group="authors_logins">n030, </component> The metadata has values for dc:creatorid and dc:creator1id so there should be a value after the comma. I also tried this but again the output is the same. <xsl:for-each select="//dc:creatorid | //dc:creator1id | //dc:creator2id | //dc:creator3id"> <component group="authors_logins" name="value"> <xsl:value-of select="."/> <xsl:if test="position() != last()"> <xsl:text>, </xsl:text> </xsl:if> </component> </xsl:for-each> Perhaps it is something to do with the // before the element name?? I tried cominations without these (select="//dc:creatorid | dc:creator1id |) but didn't fix it. Are these paths? Thanks for your help. Mark Mark Jones University of East Anglia Norwich NR4 7TJ Tel: 01603 59 1250 >-----Original Message----- >From: Andrew Welch [mailto:andrew.j.welch@xxxxxxxxx] >Sent: Tuesday, March 18, 2008 3:28 PM >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >Subject: Re: [xsl] Looping through multiple elements > >On 18/03/2008, Jones Mark Mr (ITCS) <Mark.Jones@xxxxxxxxx> wrote: >> example, there are also these fields (dc:creator, dc:creator1, >> dc:creator2, dc:creator3). I need to make the xml output for this >> generate the xml below (the names are just examples) >> >> <component name="value" group="creators">Smith, Jones, Black, >> White</component> > >In 1.0 you can do: > ><xsl:for-each select="dc:creator | dc:creator1 | dc:creator2 | >dc:creator3"> > <xsl:value-of select="."/> > <xsl:if test="position() != last()">, </xsl:if> </xsl:for-each> > >In 2.0 it's easier: > >string-join((dc:creator, dc:creator1, dc:creator2, dc:creator3), ', ') > > >cheers >-- >Andrew Welch >http://andrewjwelch.com >Kernow: http://kernowforsaxon.sf.net/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Looping through multiple , Andrew Welch | Thread | Re: [xsl] Looping through multiple , Martin Honnen |
Re: [xsl] Looping through multiple , Andrew Welch | Date | Re: [xsl] Looping through multiple , Martin Honnen |
Month |
Keywords