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

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


Subject: RE: [xsl] .NET XSLT Parser and Indentation Whitespace Problem
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 9 Nov 2007 08:47:40 -0000

Sounds like you want to replace every occurrence of "\n\s\s\s\s" with "\n"
where \n represents a newline and \s a space (unless your actual text is
using tab characters, of course). That's easily done in XSLT 2.0 using the
replace() function. In 1.0, look in the FAQ for string-replacement code
(there's an EXSLT function that does the job).

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Michael She [mailto:mshe@xxxxxxxxxx] 
> Sent: 09 November 2007 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
Keywords