忽略 当使用HtmlAgilityPack进行解析时
本文关键字:HtmlAgilityPack amp#160 忽略 | 更新日期: 2023-09-27 18:27:33
我正在使用包含非中断空间的html敏捷包解析c#中的html表。
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(page);
其中page是包含在文本中具有特殊字符 
的表的字符串。
<td> test</td>
<td>number = 123 </td>
使用SelectSingleNode(".//td").InnerText
将包含这些特殊字符,但我想忽略它们。
有没有一种优雅的方法可以在不修改源表的情况下忽略这一点(无论是否有Html敏捷包的帮助)?
您可以使用HtmlDecode
string foo = HttpUtility.HtmlDecode("Special char:  ");
会给你一个字符串:
特殊字符:
您所说的"特殊字符"非中断空格是一个有效字符,可以完全合法地出现在文本中,就像"花式引号"、em破折号等一样。
我们经常希望将某些角色视为对等角色。
- 因此,您可能希望将em破折号、en破折号和减号/破折号视为是一样的
- 或者像直引号一样的花式引号
- 或者是作为一个普通空间的非破坏性空间
然而,这不是HTML敏捷包可以帮助的东西。你需要使用类似字符串的东西。替换或您自己的规范化函数来执行此操作。
我建议:
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;
}