Re: [xsl] How to retain the end tag when outputting an empty element?

Subject: Re: [xsl] How to retain the end tag when outputting an empty element?
From: "Liam R. E. Quin liam@xxxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 19 Jun 2022 00:40:13 -0000
On Sat, 2022-06-18 at 20:04 +0000, Peter Flynn peter@xxxxxxxxxxx wrote:
>
> Yes, absolutely. However, web browsers sometimes fail to grok the
> difference between (say) <hr/> and <hr></hr> and thus render them
> differently, so when you output HTML or XHTML, it may make a
> difference.
>


"sometimes fail" - in particular </hr> isn't legal in HTML mode. The
<hr> is #empty and "self-closing", so after that the parser is not
expecting </hr>. When it see one, it imputes that there must have been
a missing <hr>, so <hr></hr> may turn into <hr><hr> when parsed in
HTML; same with <br>.

May and sometimes - depends on the DOCTYPE line: if it's not <DOCTYPE
html>, it'll depend on the individual browser. And in xhtml mode, you
should be able to use <hr></hr>, but it's not wise as HTML parsers will
go wrong with it :)

The Polyglot HTML spec says more about this.

liam

--
Liam Quin,B https://www.delightfulcomputing.com/
Available for XML/Document/Information Architecture/XSLT/
XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
Barefoot Web-slave, antique illustrations: B http://www.fromoldbooks.org

Current Thread