如何删除XmlNodeType.Text节点中无关紧要的空格?

时间:2010-09-13 03:24:25

标签: c# html xml whitespace

我有一个html节点:

<p>Line1
Line2
Line
ThereAreTwoSpacesAfterThis  ThereAreTwoSpacesBeforeThis
</p>

在任何浏览器中,最终使用结果为

Line1 Line2 Line ThereAreTwoSpacesAfterThis ThereAreTwoSpacesBeforeThis 

这是我想要的结果。

那么如何删除XmlNodeType.Text节点(C#)中无关紧要的空格呢?

=============================================== ==========

大家好,谢谢你的回复。

实际上我正在开发一个小项目来从网页(html)中提取所有文本:类似于从Firefox或IE中“另存为页面为文本文件”。

我尝试使用Html Agility Pack,但结果还不够好。

我也试过使用一个WebBrowser控件,但它看起来太慢了,控制它的方式并不那么容易。

有什么好主意吗?

据我所知,有人建议我使用正则表达式,但有太多的情况要考虑。

1 个答案:

答案 0 :(得分:1)

Just use a regular expression!

var spacesSquashed = Regex.Replace(input, @"\s+", " ", RegexOptions.Singleline);

如果您还想按照HTML中的惯例删除开头和结尾的所有空格,请在末尾添加额外的.Trim()