Re: [xslt] Structural difference between html and xml output?



Does it work if you do:

> >   <xsl:template match="bla">
> >     <p /> <!-- empty paragraph WITH EXTRA SPACE BEFORE CLOSE -->
> >     <b>foo</b>
> >     <xsl:apply-templates/>




----- Original Message -----
From: "Morus Walter" <morus.walter@tanto-xipolis.de>
To: <xslt@gnome.org>
Sent: Wednesday, November 14, 2001 1:04 AM
Subject: Re: [xslt] Structural difference between html and xml output?


> Hi Daniel,
>
> any comment on that problem?
>
> The effect seems to come from either the saveEndTag-Column in the
> html40ElementTable (HTMLparser.c line 358 f), where li and p get a 1
> instead of 0 as other non-empty element or it's usage in HTMLtree.c (lines
> 541 and 1043) where end tags are omitted, if saveEndTag != 0 for this
> element.
> So it might be easily fixed by either changing the entries in
html40ElementTable
> to 0 or changing the test to `saveEndTag == 2'...
>
> greetings
> Morus
>
> My mail from Nov 9:
> >
> > given the following xml document:
> > <bla>blub</bla>
> >
> > and a stylesheet:
> > <?xml version="1.0"?>
> > <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> >   <xsl:output indent="no" encoding="ISO-8859-1" method="html"/>
> >   <xsl:template match="/">
> >     <html>
> >       <body bgcolor="#FFFFFF">
> >         <xsl:apply-templates/>
> >       </body>
> >     </html>
> >   </xsl:template>
> >   <xsl:template match="bla">
> >     <p/> <!-- empty paragraph -->
> >     <b>foo</b>
> >     <xsl:apply-templates/>
> >   </xsl:template>
> > </xsl:stylesheet>
> >
> > xsltproc creates
> > <html><body bgcolor="#FFFFFF">
> > <p>
> > <b>foo</b>blub</body></html>
> > for the html output method, and
> > <?xml version="1.0" encoding="ISO-8859-1"?>
> > <html><body bgcolor="#FFFFFF"><p/><b>foo</b>blub</body></html>
> > for xml output.
> >
> > Now in the html-output the <b>foo</b>blub part is within the <p>
element,
> > as the end element is omitted (b and #PCDATA is allowed content for <p>
so
> > the omitted end tag would be inserted before </body> by a parser).
> > In the xml-output the structure is as the stylesheet indicates (closing
the
> > <p> before <b>).
> > The same results occur, when I use <p></p> instead of <p/>. It changes
> > only when the <p> get's content (eg. <p>x</p>).
> >
> > Now: is this correct?
> >
> > I admit that this is completely broken html (I didn't write the
stylesheets
> > where I found this problem the first time), but the question remains, if
> > end tag omission on empty tags should be applied to tag that are not
> > declared empty in html.
> > xalan (C++) outputs
> > <html><body bgcolor="#FFFFFF"><p></p><b>foo</b>blub</body></html>
> > on the html method, so it closes the p tag.
> > A look at the rules for html output in Michael Kays XSLT reference
> > also indicates, that only some elements should be output without end
tag.
> >
> > xsltproc version is
> > xsltproc --version
> > Using libxml 20409, libxslt 10006 and libexslt 600
> > xsltproc was compiled against libxml 20409, libxslt 10006 and libexslt
600
> > libxslt 10006 was compiled against libxml 20409
> > libexslt 600 was compiled against libxml 20409
> >
> > greetings
> > Morus
> >
> > --
> > Th. Morus WALTER · Manager Content & Data Development
> > xipolis.net GmbH & Co. KG
> > Schellingstraße 35 · 80799 München
> > www.xipolis-base.de · www.mr-check.de · www.xipolis.net
> > _______________________________________________
> > xslt mailing list, project page http://xmlsoft.org/XSLT/
> > xslt@gnome.org
> > http://mail.gnome.org/mailman/listinfo/xslt
> _______________________________________________
> xslt mailing list, project page http://xmlsoft.org/XSLT/
> xslt@gnome.org
> http://mail.gnome.org/mailman/listinfo/xslt
>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]