Subject: RE: [xsl] Unwanted elements in xsl output From: Jarno.Elovirta@xxxxxxxxx Date: Wed, 9 Jul 2003 14:11:09 +0300 |
Hi, > <xsl:template match="/"> > <html> > <head><title>Web app. list</title></head> > <body> > <xsl:for-each select="webapps/website"> > <table border="1" summary="Web Application Table"> > <tr> > <td>Site Name:</td> > <td><xsl:value-of select="@name"/></td> > </tr> > <xsl:apply-templates/> Here you ask to process all the child nodes, including the language element > </table> > </xsl:for-each> > </body> > </html> > </xsl:template> > > <xsl:template match="address"> and this will match the address elements > <tr> > <td>URL:</td> > <td><xsl:value-of select="."/></td> > </tr> > </xsl:template> but you don't have a template to match the language element. Thus, the build-in template is used to process it, see <http://www.w3.org/TR/xslt#built-in-rule>. The result is that a text node "PHP" will be added to the result tree, without tr and td element wrappers. The HTML DTD doesn't allow PCDATA inside table, thus browser error recovery kicks in; Mozilla recovers by outputting the PCDATA after the table, IE before. You can fix your stylesheet by either selecting only the elements you want to process in the / template, i.e. <xsl:apply-templates select="address" /> or be adding a template to match the language element and output nothing in it. <xsl:template match="language"/> It usually/always helps in debugging if you use a command-line XSLT processor, or an IDE like Xselerator to see what the output is, instead of just looking at the HTML renderation on a browser. Cheers, Jarno - Razed In Black: Oh My Goth!... aah, the nostalgia XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Unwanted elements in xsl , Rudi Starcevic | Thread | RE: [xsl] Unwanted elements in xsl , Rudi Starcevic |
[xsl] Unwanted elements in xsl outp, Rudi Starcevic | Date | Re: [xsl] Unwanted elements in xsl , David Carlisle |
Month |