Subject: RE: .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: .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
|