[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Output as per the filter is missing
In XSLT 1.0, if you do <xsl:value-of select="xxx"> and xxx selects more than one node, only the first node in the set is output. To iterate over several nodes, use xsl:for-each or (better) xsl:apply-templates. You are doing <xsl:for-each select="section">, but that's rather pointless because there is only one section. At this stage of the game, it's much better to get into the habit of using apply-templates. Write a template rule for each element saying what you want done with it, for example <xsl:template match="para"> <xsl:apply-templates/> </xsl:template> <xsl:template match="section"> <xsl:apply-templates/> </xsl:template> <xsl:template match="message[@priority='warn']"> <p><xsl:value-of select="."/></p> </xsl:template> <xsl:template match="message[@priority='info']"> <xsl:comment><xsl:value-of select="."/></xsl:comment> </xsl:template> Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Sharma, Jaikumar [mailto:jaikumar.sharma@xxxxxxxxx] > Sent: 01 August 2007 08:44 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Output as per the filter is missing > > Hi All, > > I have the following XML document and XSL stylesheet. > > Problem : When I try to render the XML document in HTML using browser. > It gives me the following output, but does not list all the > warning messages as per the filter in XSL stylesheet, it only > list the first warning message. > > Output : > ___________________________ > Test Page > > warn message 1 > ____________________________ > > > XML document : > __________________________________________________________ > <?xml version="1.0"?> > <?xml-stylesheet type="text/xsl" href="test.xsl"?> > <docroot> > <mydocument> > <para> > <section> > <message priority="warn">warn message 1</message> > <message priority="warn">warn message 2</message> > <message priority="info">info message 1</message> > <message priority="info">info message 2</message> > <message priority="info">info message 3</message> > > </section> > </para> > </mydocument> > </docroot> > __________________________________________________________ > > XSL stylesheet : > > _________________________________________________________ > <?xml version="1.0"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="html" indent="yes" /> > > <xsl:template match="/"> > <html> > <head><p><b>Test Page</b></p></head> > <body> > <xsl:apply-templates select="docroot/mydocument/para"/> > </body> > </html> > </xsl:template> > > <xsl:template match="*"> > <xsl:for-each select="section"> > <xsl:value-of select="message[@priority='warn']"/> > </xsl:for-each> > </xsl:template> > > </xsl:stylesheet> > > _______________________________________________________ > > > I am Newbie to XSL, does somebody know which step I am missing here ? > > Thanks. > > > DISCLAIMER: > Unless indicated otherwise, the information contained in this > message is privileged and confidential, and is intended only > for the use of the addressee(s) named above and others who > have been specifically authorized to receive it. If you are > not the intended recipient, you are hereby notified that any > dissemination, distribution or copying of this message and/or > attachments is strictly prohibited. The company accepts no > liability for any damage caused by any virus transmitted by > this email. Furthermore, the company does not warrant a > proper and complete transmission of this information, nor > does it accept liability for any delays. If you have received > this message in error, please contact the sender and delete > the message. Thank you.
|
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
|