This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: what should be the correct subject line
- From: "Andrew Welch" <awelch at piper-group dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 12 Aug 2002 09:55:17 +0100
- Subject: RE: [xsl] what should be the correct subject line
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
Your problem is this template:
<xsl:template match="body/text()">
<p><xsl:apply-templates/></p>
</xsl:template>
Which is matching all the child text nodes within <body> and outputting
<p>'s.
<body>
<br/>
</body>
Here <body> has three children, <br/> and two whitespace only text
nodes.
To strip the whitespace only text nodes, simply add
<xsl:strip-space elements="body"/>
as a top level element to your stylesheet.
cheers
andrew
> -----Original Message-----
> From: abradoom [mailto:thiabek@fastmail.fm]
> Sent: 12 August 2002 07:07
> To: xsl-list@lists.mulberrytech.com
> Subject: [xsl] what should be the correct subject line
>
>
> i have posted the same problem 2 times but no one seems to give a
> reply.
> atleast one can tell me what is the reason .
>
> here are input and out put.
> input html.
> <html>
> <head>
> <meta name="generator" content="HTML Tidy, see www.w3.org" />
> <title>HELLO LIST</title>
> </head>
> <body bgcolor="#C4C4C4" text="#443481" link="#1111EE">
> <p>This is for br tag</p>
> <div>The stylesheet is doing some mischief</div>
> <div><font size="+1">WHAT IS THE REASON ?</font></div>
> <br /><br /><br /><br /><br /><br />
> <p>Is it not the proper syntax for matching<br />tag.</p>
> <br />
> <br />
> </body>
> </html>
>
> xsl is.
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output omit-xml-declaration="yes"/>
> <xsl:template match="/">
> <wml>
> <card title="output">
> <xsl:apply-templates/>
> </card>
> </wml>
> </xsl:template>
> <xsl:template match="head"/>
> <xsl:template match="body">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="p/div | div/div | center/div | font/div">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="div">
> <p><xsl:apply-templates/></p>
> </xsl:template>
>
> <xsl:template match="font/p | center/p | div/p | p/p">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="p">
> <p><xsl:apply-templates/></p>
> </xsl:template>
>
> <xsl:template match="p/font | center/font | div/font | font/font">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="font">
> <p><xsl:apply-templates/></p>
> </xsl:template>
>
> <xsl:template match="font/br | div/br | center/br | p/br ">
> <br/>
> </xsl:template>
>
> <xsl:template match="body/text()">
> <p><xsl:apply-templates/></p>
> </xsl:template>
>
> </xsl:stylesheet>
>
> and the output is
>
> <?xml version="1.0"?><!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML
> 1.2//EN'
> 'http://www.wapforum.org/DTD/wml_1.2.xml'><wml><card title="wml
> output">
>
> <p>
> </p><p>This is for br tag</p><p>
>
> </p><p>The stylesheet is doing some mischief</p><p>
>
> </p><p>WHAT IS THE REASON ?</p><p>
>
> </p><p>
> </p><p>
> </p><p>
> </p><p>
> </p><p>
> </p><p>
> </p><p>Is it not the proper syntax for matching<br/>
> tag.</p><p>
>
> </p><p>
> </p><p>
> </p>
> </card></wml>
>
> Here so many unwanted <p> and </p> .why? and how to remove them with
> the condition that if some text is not in side of any tag but body it
> should be outputted.
> (<html>...<body>
> some text not in any tag
> <p>some text in side p tag</p>
> </body></html>)
> And if i want to test for <br /> that if it is just after a
> <a> or <li>
> or <br /> then do not put <br /> in output.
> I tried
> <xsl:template match="br[not(preceding-sibling::node()[1][self::br])] |
> br[not(preceding-sibling::node()[1][self::a])] |
> br[not(preceding-sibling::node()[1][self::li])]">
> <br/>
> </xsl:template>
> but not working
> thiabek
>
>
> --
> http://fastmail.fm/ - A fast, anti-spam email service.
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
>
>
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.381 / Virus Database: 214 - Release Date: 02/08/2002
>
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.381 / Virus Database: 214 - Release Date: 02/08/2002
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list