繁体   English   中英

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

[英]remove indentation and formatting in html string

我正在使用下面的代码片段来获取控件的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;
}

对于前

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

<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>

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

下面介绍了一种替代(且可能更简单)的策略:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM