Re: [xslt] Structural difference between html and xml output?
- From: Morus Walter <morus walter tanto-xipolis de>
- To: xslt gnome org
- Subject: Re: [xslt] Structural difference between html and xml output?
- Date: Wed, 14 Nov 2001 10:04:36 +0100
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]