[xsl] Re: Parsing & splitting a string n times

Subject: [xsl] Re: Parsing & splitting a string n times
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Fri, 24 May 2002 06:08:57 -0700 (PDT)
>   I have the following problem. Could someone help, please?
>   I have a string in the following format: 
>    <add-attr attr-name="PHONENO">
>          <value type="string">value1,value2,valu3,......</value>
>     </add-attr>
>    the number of values are not fixed & can vary every time.
>     I need to split this string at the commas & put each value in a 
> separate value tag.
>    like:
>      <add-attr attr-name="PHONENO">
>          <value type="string">value1</value>
>          <value type="string">value2</value>
>          <value type="string">value3</value>
>          .
>          .
>          .	
>     </add-attr>
>    What i would like to know is, Are the concepts like arrays/lists 
> or loops handled in XSL?

Using FXSL one would write the following:

<xsl:stylesheet version="1.0" 
 <xsl:import href="strSplit-to-Words2.xsl"/>

   <xsl:output indent="yes" omit-xml-declaration="yes"/>
    <xsl:template match="/">
      <xsl:variable name="vRTFWords">
        <xsl:call-template name="str-split-to-words">
          <xsl:with-param name="pStr" select="/*/*"/>
          <xsl:with-param name="pDelimiters" 
                         select="', &#9;&#10;&#13;'"/>
     <add-attr attr-name="PHONENO">
      <xsl:apply-templates select="vendor:node-set($vRTFWords)/word"/>
    <xsl:template match="word">
      <value type="string">
        <xsl:copy-of select="node()"/>


When applied on the following source xml:

<add-attr attr-name="PHONENO">
  <value type="string">value1,value2,value3</value>

this transformation produces the following result:

<add-attr attr-name="PHONENO">
  <value type="string">value1</value>
  <value type="string">value2</value>
  <value type="string">value3</value>

Dimitre Novatchev.

Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Current Thread