[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] condition check before outputting element
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
|
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
|