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

Re: AW: preserve structure of xml?

Subject: Re: AW: preserve structure of xml?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 18 Jul 2003 12:05:09 +0100
ie xsl
> I am using MSXML 4.0 and I don't have problems with preserving whitespace.

MSXML (all versions) will incorrectly remove white space text nodes
while parsing the input (irrespective of whether the file is being used
via xslt) so the white space is just not there in the DOM, and so can't
be preserved by xslt.

This isn't a bug: its an intentional, documented, non conformance by the
system, see the documentation of preservewhhitespace in the SDK docs.

If you call msxml from a script or programming language api (as you must
be doing if you are using 4) then you can set preservwhitespace=true
and so keep the spaces, but if you just use the automatic client ie
parsing in IE then you don't get a chance to set this property.

David

A recent conversation on xml-dev....

Date: 8 Jul 2003 19:18:34 +0100
From: David Carlisle <davidc@xxxxxxxxx>
To: derekdb@xxxxxxxxxxxxx
CC: xml-dev@xxxxxxxxxxxxx
In-reply-to: <200307081801.TAA16980@xxxxxxxxxxxxxxxxx> (message from David
	Carlisle on Tue, 8 Jul 2003 19:01:17 +0100)
Subject: Re: [xml-dev] Handling of significant whitespace in .NET XmlReade r


I wrote

> But since I failed to reproduce this now, I'll have to eat my words and
> confirm that 
> 
> > Xslt should still
> > be acting like there was a single space there


I ate my words too soon.
If you have a _really_ trivial stylesheet that does copy the entire
document in a single operation then your magic spaces do appear in the
output, but if you do the usual thing of having an "identity template"
that walks the tree, they go.

ie.xml:
=======
<?xml-stylesheet type="text/xsl" href="ie.xsl"?>
<p>
<b>this</b> <i>is</i> <span class="zzz">bad</span>
</p>


ie.xsl:
======

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
>


<xsl:template match="/">
<html>
<head><title>test</title></head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>

<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>



voila: No spaces.

David




________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.