OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] XSL transformation

[ Lists Home | Date Index | Thread Index ]

Thanks much Matt & Martin. That was really
informative.

I am sorry I am posting this at the wrong place and
thanks Matt for pointing the XSL list. But before I
close this issue I forgot to mention the following 

The starting pos changes but the ending position of
each of the string needed from the <Names> tag is
constant. So I got to loop through the string returned
by the <Names> tag and then apply this kind of 

substring(Names,15, 3);
substring(Names,18,4);
substring(Names,22,5);

substring(Names,27,3);
substring(Names,30,4);
substring(Names,34,5);

substring(Names,39,3);
substring(Names,42,4);
substring(Names,46,5);

So I know before hand that for every 3 characters I
get a name, and then for every 4 characters from there
I get the second name and then for every 5 characters
I get the third name. And then would stop here and go
back and pick the next 3 characters and include as my
next first name and so on.


Is there a way I can change the function you guys sent
to accomdate this issue.

Thanks very much for your valuable time.
Nischal



--- martin@hack.org wrote:
> 
> Hi Nischal -
> 
> write a recursive template:
> 
> <xsl:template name="name">
> <xsl:param name="data">
> <xsl:choose>
> <xsl:when test="contains($data, ' ')">
> <xsl:apply-templates select="substring-before($data,
> ' ')" mode="Name"/>
> <xsl:call-template name="name">
> <xsl:with-param name="data"
> select="substring-after($data, ' ')"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>
> <xsl:apply-templates select="$data" mode="Name"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
> 
> and put your processing here:
> 
> <xsl:template match="text()" mode="Name">
> ... whatever you want to do with the values
> </xsl:template>
> 
> this assumes there are no spaces in your values - in
> that case you will
> have to change the substrings, and 'contains()' to
> check for zero-length
> strings.
> 
> hth,
> 
> /m
> 
> Martin Klang
> http://www.o-xml.org - the object-oriented XML
> programming language
> 
> 
> On Tue, 19 Nov 2002, Nischal Muthana wrote:
> 
> > Hi All
> >
> > I have an XSL file say NameList.xsl which picks
> > transforms an XML file say Names.xml.
> >
> > The Names.xml is like,
> >
> > <Name>
> >   <Names>aaaa bbbb cccc dddd eeee ffff gggg hhhh
> iiii
> > jjjj kkkk llll mmmm nnnn oooo pppp qqqq rrrr ssss
> tttt
> > uuuu vvvv wwww xxxx yyyy zzzz</FirstNames>
> > </Name>
> >
> > My Xsl file has to pick up the Names node and do a
> > substring and pick each value in the <Names> tag.
> Each
> > value is of 4 characters and each value is
> seperated
> > by a space.
> >
> > I am tryin to write a <xsl:foreach
> > select='Name/Names'>
> > and then do a substring on the element value. Can
> > someone guide me through how to go about with
> this.
> >
> > I tried to do
> >
> > <xsl:value-of select="substring(Name/Names,0,4)"/>
> > <xsl:value-of select="substring(Name/Names,4,4)"/>
> > ....
> >
> > Thanks in Advance
> > Nischal
> >
> >
> >
> > __________________________________________________
> > Do you Yahoo!?
> > Yahoo! Web Hosting - Let the expert host your site
> > http://webhosting.yahoo.com
> >
> >
>
-----------------------------------------------------------------
> > The xml-dev list is sponsored by XML.org
> <http://www.xml.org>, an
> > initiative of OASIS <http://www.oasis-open.org>
> >
> > The list archives are at
> http://lists.xml.org/archives/xml-dev/
> >
> > To subscribe or unsubscribe from this list use the
> subscription
> > manager: <http://lists.xml.org/ob/adm.pl>
> >
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Web Hosting - Let the expert host your site
http://webhosting.yahoo.com




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS