[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] removing tab formatting during XSLT?


Subject: Re: [xsl] removing tab formatting during XSLT?
From: "Michael H. Semcheski" <mhs-list@xxxxxxxxx>
Date: Thu, 10 Oct 2002 16:20:50 -0400

I've had the opposite problem with MSXML. I have had inconsistent experiences as far as white space goes with its processor. 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[@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">&#x9;</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@xxxxxxxxxxxxx] Sent: Thursday, October 10, 2002 2:18 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 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 '&nbsp;'. 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 '&#x9;' instead. I'm pretty sure that that is the tab character ...

Rich

-----Original Message-----
From: Macaulay,Malcolm (US) [mailto:Malcolm.Macaulay2@xxxxxxxxx] Sent: Thursday, October 10, 2002 10:55 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx


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



Current Thread
Keywords
xml