RE: [xsl] .NET XSLT Parser and Indentation Whitespace Problem

Subject: RE: [xsl] .NET XSLT Parser and Indentation Whitespace Problem
From: "W Charlton" <XSLList@xxxxxxxxxx>
Date: Fri, 9 Nov 2007 09:41:57 -0000
Michael,

You don't say what processor or even what process you are using for the
transform. But assume that any tabs, spaces, line feeds etc are persevered
on transform. 
It may be simpler to control the non-text characters in the code and not
rely on pre-existing formatting caharacters.

So


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
	<xsl:output method="text" indent="no" omit-xml-declaration="yes"/>
	<xsl:param name="Name"/>
	<xsl:template match="/">
		<xsl:text>Hello </xsl:text>
		<xsl:value-of select="$Name"/>
		<xsl:text>,&#13;&#10;</xsl:text>
		<xsl:text> We have received your e-mail, and your question
is in the process of being routed to the appropriate department. Our
customer service representatives will make every effort to respond to your
message within 24 hours. In the meantime, if you have not already done so,
please take a moment to look for your answer in the frequently asked
questions (FAQ) section of our site.</xsl:text>
		<xsl:text>&#13;&#10;</xsl:text>
		<xsl:text>&#13;&#10;</xsl:text>
		<xsl:text>Thank you for taking the time to contact us. We
value your opinions and appreciate your concerns. A customer service
representative will be contacting you soon.</xsl:text>
		<xsl:text>&#13;&#10;</xsl:text>
		<xsl:text>&#13;&#10;</xsl:text>
		<xsl:text>Sincerely,</xsl:text>
		<xsl:text>&#13;&#10;</xsl:text>
		<xsl:text>&#13;&#10;</xsl:text>
		<xsl:text>MySite.com</xsl:text>
	</xsl:template>
</xsl:stylesheet>
If you need a line break anywhere just add a <xsl:text>&#13;&#10;</xsl:text>
(CRLF) but of course yo can't add one inside <xsl:text/>

BTW I think you'll find that indent="no" has no effect.

William Charlton
The yMonda team
yMonda Limited
w: www.ymonda.net

-----Original Message-----
From: Michael She [mailto:mshe@xxxxxxxxxx] 
Sent: 2007 November 09 07:44
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] .NET XSLT Parser and Indentation Whitespace Problem

Hello Everyone,

I've been Googling for a while and I can't seem to find an answer to this
question. VS.NET 2005 adds automatic indentation to XSLT files... and this
indentation is causing problems with formatting. I could manually fix the
file, but this would only be a workaround which could break easily... so I'm
wondering how you get XSLT to strip indentation. 

I have an XSLT file that looks like:

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="text" indent="no" omit-xml-declaration="yes"/>
  <xsl:param name="Name"/>
  <xsl:template match="/">
    Hello <xsl:value-of select="$Name"  />,

    We have received your e-mail, and your question is in the process of
being routed to the appropriate department. Our customer service
representatives will make every effort to respond to your message within 24
hours. In the meantime, if you have not already done so, please take a
moment to look for your answer in the frequently asked questions (FAQ)
section of our site.

    Thank you for taking the time to contact us. We value your opinions and
appreciate your concerns. A customer service representative will be
contacting you soon.

    Sincerely,

    MySite.com
  </xsl:template>
</xsl:stylesheet>

My output is looking like:

    Hello <xsl:value-of select="$Name"  />,

    We have received your e-mail, and your question is in the process of
being routed to the appropriate department. Our customer service
representatives will make every effort to respond to your message within 24
hours. In the meantime, if you have not already done so, please take a
moment to look for your answer in the frequently asked questions (FAQ)
section of our site.

    Thank you for taking the time to contact us. We value your opinions and
appreciate your concerns. A customer service representative will be
contacting you soon.

    Sincerely,

    MySite.com

Notice the indentation before each line?

How do I get the output to look like:

Hello <xsl:value-of select="$Name"  />,

We have received your e-mail, and your question is in the process of being
routed to the appropriate department. Our customer service representatives
will make every effort to respond to your message within 24 hours. In the
meantime, if you have not already done so, please take a moment to look for
your answer in the frequently asked questions (FAQ) section of our site.

Thank you for taking the time to contact us. We value your opinions and
appreciate your concerns. A customer service representative will be
contacting you soon.

Sincerely,

MySite.com

Basically I want .NET's XSLT engine to ignore the indentation in the XSLT
file and treat each line as a flush new line?

Thanks!

--
Michael She 
Team Leader, Software Development
Multi-Vision Communications Inc.
P: (905) 470-8644 x254 (Follow-Me)
M: (416) 816-2566
E: mshe@xxxxxxxxxx
W: http://www.mvcinc.com

Current Thread