xsl-list
[Top] [All Lists]

Re: Interesting issue

2002-11-25 13:00:51
Thanks a lot Joerg,

This worked like a charm. Appreciate your time and
help.

thanks
Nischal


--- Joerg Heinicke <joerg(_dot_)heinicke(_at_)gmx(_dot_)de> wrote:
Hello Nischal,

this is really an extreme demand. I see only this
string:


<data>SudhakarJalli030719751809Bigbenddrmilpitasca95035Rajeevkasarabada032719751788lowerbenddrivesanjoseca94523</data>

Where do you know from (or where should the XSLT
processor or JavaScript 
know from), where to divide the strings in
substrings? There seems to be 
no delimiter and no fixed number of characters.

In every case the logic you implemented in JS can be
implemented in XSLT 
with a recursive template:

<xsl:template match="/Customers">
   <Customers>
     <xsl:call-template name="customer">
       <xsl:with-param name="data" select="data"/>
     </xsl:call-template>
   </Customers>
</xsl:template>

<xsl:template name="customer">
   <xsl:param name="data" select="''"/>
   <xsl:if test="string(data)">
     <Customer>
       <FirstName>
         <xsl:value-of select="substring($data, 1,
15)"/>
       </FirstName>
       <LastName>
         <xsl:value-of select="substring($data, 16,
1)"/>
       </LastName>
       <Street>
         <xsl:value-of select="substring($data, 17,
1)"/>
       </Street>
       <City>
         <xsl:value-of select="substring($data, 18,
1)"/>
       </City>
       ...
       and so on
       ...
     </Customer>
     <xsl:call-template name="customer">
       <xsl:with-param name="data"
select="substring($data, 20)"/>
     </xsl:call-template>
   </xsl:if>
</xsl:template>

But as I said there is no logic for the string
length. Where do you want 
to get it from?

Regards,

Joerg

Nischal Muthana wrote:
Hi All

I am transforming xml to xml using an xsl with
Xalan
XSLT processor. But I am getting the resulting xml
as
string instead of 

nodelist.

test.xsl
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:lxslt="http://xml.apache.org/xslt"; 

xmlns:result="http://www.example.com/results";
extension-element-prefixes="result" version="1.0">
<xsl:output method="xml"/>
    <lxslt:component prefix="result"
functions="GetCopyBookData">
    <lxslt:script lang="javascript">
    function GetData(Data)
    {
            var x1 = 0;
            var x2 = 0;
            var result;
            for(var i = 1;i < 3; i++)
            {
                    var s = "<Customers><FirstName>";
                    x1 = x2;
                    x2 = x1 + 15;
                    s = s + Data.substring(x1,x2) + "</FirstName>";
                    s = s + "<LastName>";
                    x1 = x2;
                    x2 = x1 + 1;
                    s = s + Data.substring(x1,x2) + "</LastName>";
                    s = s + "<StreetNum>";
                    x1 = x2;
                    x2 = x1 + 1;
                    s = s + Data.substring(x1,x2) + "</StreetNum>";
                    s = s + "<Street>";
                    x1 = x2;
                    x2 = x1 + 1;
                    s = s + Data.substring(x1,x2) + "</Street>";
                    s = s + "<City>";
                    x1 = x2;
                    x2 = x1 + 1;
                    s = s + Data.substring(x1,x2) + "</City>";
                    s = s + "<State>";
                    x1 = x2;
                    x2 = x1 + 1;
                    s = s + Data.substring(x1,x2) + "</State>";
                    s = s + "<Zip>";
                    x1 = x2;
                    x2 = x1 + 1;
                    s = s + Data.substring(x1,x2) + "</Zip>";
                    result = result + s;
            }
            return result;
    }
    </lxslt:script>
    </lxslt:component>
    <xsl:template match="/">
            <xsl:variable name="Data" select="data"/>
            <xsl:value-of select="result:GetData($Data)"/>
    </xsl:template>
            
test.xml
<Customers>


<data>SudhakarJalli030719751809Bigbenddrmilpitasca95035Rajeevkasarabada032719751788lowerbenddrivesanjoseca94523</data>
</Customers>


Result.xml

<Customers>
    <FirstName>Sudhakar</FirstName>
    <LastName>Jalli</LastName>
    <DOB>03071975</DOB>
    <StreetNum>1809</StreetNum>
    <Street>BigBendDr</Street>
    <City>Milpitas</City>
    <State>CA</State>
    <Zip>95035</Zip>
</Customers>
    <FirstName>Rajeev</FirstName>
    <LastName>Kasarabada</LastName>
    <DOB>03271975</DOB>
    <StreetNum>1788</StreetNum>
    <Street>lowerbenddrive</Street>
    <City>sanjose</City>
    <State>CA</State>
    <Zip>94523</Zip>
</Customers>                

Thanks for your time
Nischal



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



__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus ? Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

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



<Prev in Thread] Current Thread [Next in Thread>