【发布时间】:2011-10-01 08:51:44
【问题描述】:
我正在尝试将网页转换为纯文本。但是,如果我遇到表格,我也会得到 td 和 tr 标签。如果我替换那些表格标签,那么我将无法获取某些内容。
这是我的代码
string s = Regex.Replace(htmldoc, "<script.*?</script>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<!--.*?-->", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<style.*?style>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<a.*?a>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<img.*?img>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<table.*?table>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(s);
s = doc.DocumentNode.SelectSingleNode("//body").InnerText.Trim();
请检查一下并告诉我如何在不获取 td 和 tr 标签的情况下从表中获取内容。
【问题讨论】:
-
我会强制警告使用regex to parse XML/HTML 是不明智的。您的问题很好地说明了这一点,HTML 表格标签的树形结构使其难以在正则表达式中处理。
标签: c# regex html-agility-pack