This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Breaking a string into repeated elements
- From: Bryan Schnabel <bryan dot schnabel at bschnabel dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Fri, 7 Jun 2002 14:37:56 -0700 (PDT)
- Subject: Re: [xsl] Breaking a string into repeated elements
- Reply-to: xsl-list at lists dot mulberrytech dot com
This kind of problem is pretty easy to find in the
archives. Once you get past the variety of possible
delimiters, it's pretty straight-forward.
This is one way:
<xsl:template match="ListOfItems">
<xsl:variable name="SpaceOrCommaOrBoth"
select="normalize-space(translate(text(),',',' '))"/>
<ListofItems>
<xsl:call-template name="Chop">
<xsl:with-param name="SpaceOrCommaOrBoth"
select="$SpaceOrCommaOrBoth"/>
</xsl:call-template>
</ListofItems>
</xsl:template>
<xsl:template name="Chop">
<xsl:param name="SpaceOrCommaOrBoth"/>
<xsl:choose>
<xsl:when test="contains($SpaceOrCommaOrBoth,' ')">
<xsl:call-template name="MakeItem">
<xsl:with-param name="ItemStff"
select="substring-before($SpaceOrCommaOrBoth,' ')"/>
</xsl:call-template>
<xsl:call-template name="Chop">
<xsl:with-param name="SpaceOrCommaOrBoth"
select="substring-after($SpaceOrCommaOrBoth,' ')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="MakeItem">
<xsl:with-param name="ItemStff"
select="$SpaceOrCommaOrBoth"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="MakeItem">
<xsl:param name="ItemStff"/>
<item>
<xsl:value-of select="$ItemStff"/>
</item>
</xsl:template>
Bryan
--- jon budar-danoff <jbudardanoff@yahoo.com> wrote:
> The construct in question looks like this:
>
> <ListOfItems>10, 20, 30, 31</ListOfItems>
>
> and I want to make it look like this:
>
> <ListOfItems howMany="4">
> <Item>10</Item>
> <Item>20</Item>
> <Item>30</Item>
> <Item>31</Item>
> </ListOfItems>
>
> Note that the existing <ListOfItems> may be
> delimited by either spaces,
> commas, or commas and spaces.
__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list