Subject: [xsl] condition check before outputting element From: "abradoom" <thiabek@xxxxxxxxxxx> Date: Thu, 8 Aug 2002 15:47:46 UT |
I am doing through php as my xslt processor is sablotron (It is supported by php). 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 shoud be outputted. 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 - Click it, you'll feel better XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Repost: How to make names, Wes Kubo | Thread | [xsl] Formatting Question, Jitt_Joynoosaeng |
[xsl] Repost: How to make namespace, Wes Kubo | Date | [xsl] Formatting Question, Jitt_Joynoosaeng |
Month |