我正在使用包含不间断空格的Html Agility Pack在c#中解析html表。
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(page);
其中page是包含在文本中包含特殊字符 
的表的字符串。
<td> test</td>
<td>number = 123 </td>
使用SelectSingleNode(".//td").InnerText
将包含此特殊字符,但我想忽略它们。
有没有一些优雅的方法可以忽略这个(有或没有Html Agility Pack的帮助)而无需修改源表?
答案 0 :(得分:2)
答案 1 :(得分:0)
你说的“特殊字符”非破坏空间是一个有效的字符,可以完全合法地出现在文本中,就像“花哨的引号”,em-dash等一样。
我们通常希望将某些字符视为等效字符。
然而,这不是HTML Agility Pack可以提供的帮助。您需要使用string.Replace或您自己的规范化函数来执行此操作。
我会建议像:
static string CleanupStringForMyApp(string s){
// replace characters with their equivalents
s = s.Replace(string.FromCharCode(160), " ");
// Add any more replacements you want to do here
return s;
}