I've had the opposite problem with MSXML. I have had inconsistent
experiences as far as white space goes with its processor.
If you control MSXML parsing from script, you can persuade it to retain
whitespace using the preserveWhitespace property on the DOM Document
object. But by default it strips it off - which is certainly bad news
when handling mixed content.
Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com
Generally,
it removes _all_ white space, which makes debugging difficult
-- Try to
find the piece of code you are looking for when the entire
document has
no breaks or tabs.
I played around with xsl:preserve-space, xsl:strip-space, and
xsl:output
indent="yes". output[(_at_)indent] helped, but it just broke the
lines very
frequently -- didn't actually indent.
My point is that maybe there are options or shortcomings in your xml
processor that make it shade into the grey area on things
like whitespace.
Mike
Macaulay,Malcolm (US) wrote:
Thanks Richard,
Still no go however. I changed my XLST to:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8"
indent="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*">
<!-- recreate the element -->
<xsl:element name="{name()}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:variable name="tab">	</xsl:variable>
<xsl:template match="text()">
<xsl:value-of select="translate(. , $tab , '')"/>
</xsl:template>
</xsl:stylesheet>
However the match="text()" template does not get invoked on the *
element below:
<?xml version="1.0"?>
<A>
*<B att="att">a</B>
<C>b</C>
<D>c</D>
</A>
I'm clearly misunderstanding this. Is there a text element in the *
position?
Any additional help would be greatly appreciated.
cheers
Malcolm
-----Original Message-----
From: Richard Lander [mailto:rlander(_at_)microsoft(_dot_)com]
Sent: Thursday, October 10, 2002 2:18 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] removing tab formatting during XSLT?
I've done this sort of thing before ...
You have two problems, as I see it.
1- you are referencing a named entity (nbsp;) w/o really
doing so. You
would need to use ' '. Still, that probably doesn't make any
sense, given that a non-breaking space isn't the same as a tab.
2. You should search on '	' instead. I'm pretty sure
that that is
the tab character ...
Rich
-----Original Message-----
From: Macaulay,Malcolm (US)
[mailto:Malcolm(_dot_)Macaulay2(_at_)cnare(_dot_)com]
Sent: Thursday, October 10, 2002 10:55 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Could someone please enlighten me on how I can remove tab formatting
from my resulting XML.
Here's an example:
Source XML:
<?xml version="1.0"?>
<A>
<B att="att">a</B>
<C>b</C>
<D>c</D>
</A>
Desired output XML (i.e. the same as input but with all tabs
removed):
<?xml version="1.0"?><A><B att="att">a</B><C>b</C><D>c</D></A>
XSLT (which doesn't work):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8"
indent="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*">
<!-- recreate the element -->
<xsl:element name="{name()}">
<!-- copy existing attributes-->
<xsl:for-each select="@*">
<xsl:copy/>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:variable name="tab">nbsp;</xsl:variable>
<xsl:template match="text()">
<xsl:value-of select="translate(. , $tab , '')"/>
</xsl:template>
<!-- original attempt
<xsl:template match="text()">
<xsl:value-of select="normalize-space(.)"/>
</xsl:template>
-->
</xsl:stylesheet>
I want to remove the tabs because this significantly reduces
the size
of the file.
Thanks in advance.
cheers
Malcolm
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list