[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: generating conditional comment in html output

Subject: Re: generating conditional comment in html output
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 09 Feb 2011 14:35:56 -0500
Re:  generating conditional comment in html output
At 2011-02-10 08:17 +1300, Trevor Nicholls wrote:
I have a stylesheet which has been turning XML into HTML without batting an
eyelid but somebody has requested that the output HTML contain some
conditional styling. This means that at one point in the output I have to
insert the string

<!--[if gte IE 7]>

and at another point I have to insert the string

<![endif]-->

I've tried using &lt; in <xsl:text>, using <xsl:value-of> a variable, using
d-o-e, and none of these options seems to work. They either display the
conditional comment in the browser with < and > (and an editor shows the
literal string "& l t ;" in the HTML) or without, or I get errors telling me
I have malformed code. I'm processing with Saxon in XSL2, and rendering with
IE7 and IE8.

What is the proper way to do this please? I found many potential answers in
the FAQ but I haven't found one that works :-(

You don't say what you have between those two strings, but syntactically the above is a comment and that is created as follows:


<xsl:comment>[if gte IE 7]>



<![endif]<xsl:comment>

Now, if you need markup in-between those two strings, you can't take advantage of standard XSLT serialization of tree nodes.

The HTML specification says that a comment starts with "<!--" and ends with "-->" and the bit in-between isn't parsed.

You ask for the "proper way to do this", but is the output "proper" HTML to begin with?

I hope this helps, but I suspect your requirement may need more. If you have to serialize markup inside of that comment, then either use an extension (if provided by your XSLT processor) or use your own template rules to reconstitute markup angle brackets manually for tree nodes, since you can't use the standard XSLT serialization.

I've done such manual reconstitution of tree nodes as angle brackets when embedded OASIS UBL XML instances in PDF XMP metadata as clear text. It can be done, but it is a pain. The code for serializing XML angle brackets from tree nodes can be downloaded from my web site in the free resources section since these UBL stylesheets are published for anyone to use. Check the CraneUBL2UNLK-print.xsl fragment in this package:

http://www.CraneSoftwrights.com/resources/ublss/#ubl2-ss

. . . . . . . . . . . Ken

--
Contact us for world-wide XML consulting & instructor-led training
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.