This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
So many unwanted elements in output how to remove?
- From: "abradoom" <thiabek at fastmail dot fm>
- To: XSL-List at lists dot mulberrytech dot com
- Date: Wed, 7 Aug 2002 16:08:19 UT
- Subject: [xsl] So many unwanted elements in output how to remove?
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hello list
I am new to list and hope i can explain the problem.
I have a html file.
<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>
and an xsl i have written 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="wml output">
<xsl:apply-templates/>
</card>
</wml>
</xsl:template>
(1)<xsl:template match="head"/>
(2)<xsl:template match="body">
<xsl:apply-templates/>
</xsl:template>
(3)<xsl:template match="p/div | div/div | center/div | font/div">
<xsl:apply-templates/>
</xsl:template>
(4)<xsl:template match="div">
<p><xsl:apply-templates/></p>
</xsl:template>
(5)<xsl:template match="font/p | center/p | div/p | p/p/">
<xsl:apply-templates/>
</xsl:template>
(6)<xsl:template match="p">
<p><xsl:apply-templates/></p>
</xsl:template>
(7)<xsl:template match="p/font | center/font | div/font | font/font">
<xsl:apply-templates/>
</xsl:template>
(8)<xsl:template match="font">
<p><xsl:apply-templates/></p>
</xsl:template>
(9)<xsl:template match="font/br | div/br | center/br | p/br ">
<br/>
</xsl:template>
(10)<xsl:template match="body/text()">
<p><xsl:apply-templates/></p>
</xsl:template>
</xsl:stylesheet>
numbers are only for ease to explain.
the output i am getting 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="output">
<p/><p>This is for br tag</p><p/><p>The stylesheet is doing some
mischief</p><p/><p>WHAT IS THE REASON
?</p><p/><p/><p/><p/><p/><p/><p/><p>Is it not the proper syntax for
matching<br/>
tag.</p><p/><p/><p/>
</card></wml>
The problem is it has so many unwanted <p> and </p> .they are because
of (10) perhaps.
But if i remove (10) i am not getting text in output which is not in
side of any tag but body.
how to do that?
and i used this
<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>
for <br> because i do not want to put <br /> in output if they are just
after <a> or <li> or <br> likr <br/><br/><br/> <br/> <br/> .so in place
of that many <br/> put only one <br/> for first one then ignore.but it
is not working syntactically incorrect? or logically?
abradoom
--
http://fastmail.fm/ - Consolidate POP email and Hotmail in one place
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list