This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Breaking a string into repeated elements


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]