[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XSL transformation
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
|
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
|