删除html字符串中的缩进和格式

时间:2011-11-16 12:39:51

标签: c# asp.net html

我使用下面的代码片段来获取控件的html字符串。这个响应有很多格式化字符,如\ n,\ t,\ r,用于缩进html。如何在不影响控件内实际文本格式的情况下删除它。

public static string RenderControl( Control control )
{           
            string renderedString;

            using ( TextWriter writer = new StringWriter( ) )
            {
                control.RenderControl( new HtmlTextWriter( writer ) );
                renderedString = writer.ToString( );
            }                   

            return renderedString;
}

对于ex-

如果我看到表控件的响应,它看起来像 -

<table>\r\n\t\t<tr>\r\n\t\t         
<td>abc\r\n def</td>...</table>

我需要的输出是 -

<table><tr>         
<td>abc\r\n def</td>...</table>

1 个答案:

答案 0 :(得分:0)

如果生成的标记与XML兼容,那么您可以使用XmlReader甚至XmlDocument实例解析结果,并使用XmlWriter重写标记,但设置XmlWriterSettings以删除所有不必要的空格。

下面描述了一种替代(并且可能更容易)的策略:

在XML(和HTML)中,只有单个空格字符很重要,因此您可以通过将生成的标记放入正则表达式替换中来删除所有相邻的空白字符(即替换“\ s \ s +”),从而快速轻松地进行修复。使用“” - '\ s'是任何空白字符的.NET Regex符号。)