|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XSL transformation
3, 4, 5 characters including whitespace? i'd change the recursive function to chunk blocks of 12 chars (or however many) and then, in the other template, split every chunk into three. regards, /m Martin Klang http://www.o-xml.org - the object-oriented XML programming language On Tue, 19 Nov 2002, Nischal Muthana wrote: > 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@h... 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 > > ----------------------------------------------------------------- > 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> >
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








