Subject: RE: [xsl] for-each question From: Holmberg Rick-ra0119 <Rick.Holmberg@xxxxxxxxxxxx> Date: Tue, 13 Aug 2002 06:47:38 -0700 |
Ok that got me closer but I need to take it one step further. I need my html to show the id as well. I don't want it to show me the magcategory though...ie If my xml file looks like this <?xml version="1.0" encoding="UTF-8"?> <test> <id>TestId</id> <book>ABC123</book> <book>ABC456</book> <book>ABC789</book> <magcategory>General</magcategory> <magazine>MAG1</magazine> <magazine>MAG2</magazine> <magazine>MAG3</magazine> </test> I would like the html to read: The ID is TestId The Books are: ABC123 ABC456 ABC789 MAG1 MAG2 MAG3 I tried to just add another template but that does not work. Any help would be appreciated. Thanks! -----Original Message----- From: Vasu Chakkera [mailto:vasucv@xxxxxxxxxxx] Sent: Tuesday, August 13, 2002 2:58 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] for-each question The problem is your template matches each book element. this is equivalent to a pseudo code for each book { The books are: Book-Name } which will produce "The Books are" Thrice( in your case). You have to take the "The books are" out of the loop. the following for-loop would help you ( this xsl produces a HTML result ) <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" method="html"/> <xsl:template match="test"> The Books are:<hr/> <xsl:for-each select="book"> <xsl:value-of select="."/><br/> </xsl:for-each> </xsl:template> </xsl:stylesheet> This would give a result The Books are: ______________ ABC123 ABC456 ABC789 Hope this helps Vasu >From: Holmberg Rick-ra0119 <Rick.Holmberg@xxxxxxxxxxxx> >Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >Subject: [xsl] for-each question >Date: Mon, 12 Aug 2002 16:56:44 -0700 > >I am new to Xsl and am trying to parse a xml document into a html doc. I >would like to have a heading above several elements but don't want that >heading to show up above each element. I am sure this is simple but I >can't seem to quite get it. Here is what I have. > >If my xml file looks like this ><?xml version="1.0" encoding="UTF-8"?> ><test> ><id>TestId</id> ><book>ABC123</book> ><book>ABC456</book> ><book>ABC789</book> ></test> > >I would like the html to read >The Books are: >ABC123 >ABC456 >ABC789 > >My Stylesheet segment is: > ><xsl:stylesheet version="1.0" >xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ><xsl:output omit-xml-declaration="yes"/> ><xsl:output method="html"/> > ><xsl:template match="/"> > <xsl:copy> > <xsl:apply-templates/> > </xsl:copy> ></xsl:template> > ><xsl:template match="book"> ><I> >The Books are: ><xsl:apply-templates select="book" /> ><xsl:apply-templates/> ></I> ></xsl:template> > > >With this XSL file I am getting the 'The Books are:' printed 3 times. I >only need it once. I figure I have to use a for-each but I can't seem to >get that to work correctly. Can anyone help here? > >Thanks, >Rick > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] for-each question, Mike Brown | Thread | RE: [xsl] for-each question, Vasu Chakkera |
[xsl] variable from file, alex ek | Date | Re: [xsl] variable from file, Vasu Chakkera |
Month |