Subject: RE: [xsl] Why processor or stylesheets puts strange output From: TSchutzerWeissmann@xxxxxxxxxxxxxxxx Date: Fri, 23 Aug 2002 12:13:19 +0100 |
Hi Thiabek, All those <p>s are coming up because this html, <br /> <br /> <br /> <br /> <br /> is in fact 5 br nodes and 5 text nodes - the text nodes are the linefeeds. This, <br /><br /><br /><br /><br />, on the other hand, is just 5 br nodes. If you use <xsl:strip-space elements="body"/> at the top level of your stylesheet, the whitespace that becomes these unwanted text nodes will be stripped from the contents of your <body> node, and you won't get those pesky p's. The reason your "it is text which has body as parent" doesn't appear is that your body/text() template is firing instead of the default text() template, which looks like this: <xsl:template match="text()|@*"> <xsl:value-of select="."/> </xsl:template> Text nodes are like your br nodes, they don't have children so <xsl:apply-templates> does nothing. Just replace it with <xsl:value-of select="."/>. salut, Tom > -----Original Message----- > From: abradoom [mailto:thiabek@xxxxxxxxxxx] > Sent: 23 August 2002 11:06 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Why processor or stylesheets puts strange output > > > hello > I have been wondering why a simple thing is bothering me so much. > i asked this on list...... got reply...... tried that...... and after > all the things > IT IS NOT WORKING > > and this mail is quite lengthy as i wanted to explain every > thing which > i can. > I have a simple 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><br /> > <br /> > <br /> > </div> > > <br /> > <br /> > <br /> > <br /> > <br /> > <br /> > <p>Is it not the proper syntax for matching<br /> > tag.</p> > > <br /> > <br /> > <br /> > <br /> > <br /> > it is text which has body as parent > </body> > </html> > > i wrote a simple stylesheet to convert it in WML > > <?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="br[preceding-sibling::node()[1][self::br]]" /> > > > > <xsl:template match="body/text()" /> > > <xsl:template match="body/br" /> > > <xsl:template match="br"> > <br /> > </xsl:template> > > </xsl:stylesheet> > > You must be wondering why so many <br />template match.but that is the > whole problem. > all i want to do is put <br /> in the output if it is in input.that is > simple. > but i want if the <br />is just after <a> ...</a> or <li>...</li> or > <br /> or it has body it's parent then do not put <br /> in > the output. > now when i wrote this in the style sheet > <xsl:template match="body/text()"> > <p><xsl:apply-templates /></p> > </xsl:template> > > and removing <xsl:template match="body/text()" /> > i got this output > <?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="output"> > > <p/><p>This is for br tag</p><p/><p>The stylesheet is doing some > mischief</p><p/><p>WHAT IS THE REASON ?<br/> > <br/> > <br/> > </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> > > the strange thing is the so many <p /> tags .i do not know from where > they are coming as there is no <p /> in the stylesheet though many <p> > and </p> are there. > and not giving the "it is text which has body as parent" .I thought to > sacrifice that ok not coming this text which has body as parent. > but i tried for not putting<br />in output if it is after <br /> as > written in the style sheet(though i want to test for <a> <li> and <br > /> but i tried only for <br /> ) > but it is giving this output > <?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="output"> > > <p>This is for br tag</p><p>The stylesheet is doing some > mischief</p><p>WHAT IS THE REASON ?<br/> > <br/> > <br/> > </p><p>Is it not the proper syntax for matching<br/> > tag.</p> > </card></wml> > > this is better than that though not outputing text having body as > parent but it has no strange <p/>. > but it still has three <br /> after "WHAT IS THE REASON?" but > it should > have one <br />. > for this output i have used the stylesheet which is given . > can any one tell me about strange out out and how to get correct > output. > > output should be like something > > <?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="output"> > > <p>This is for br tag</p><p>The stylesheet is doing some > mischief</p><p>WHAT IS THE REASON ?<br/> > </p><p>Is it not the proper syntax for matching<br/> > tag.</p> > <p>it is text which has body as parent</p> > </card></wml> > > > thiabek > -- > http://fastmail.fm : send your email first class > > 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 -> |
---|---|---|
[xsl] Why processor or stylesheets , abradoom | Thread | RE: [xsl] Why processor or styleshe, abradoom |
RE: [xsl] 8bit ascii encoding, Andrew Welch | Date | Re: [xsl] 8bit ascii encoding, David Carlisle |
Month |