问问题
1618 次
2 回答
2
Regex
是解析 HTML 的糟糕选择,尤其是不一致的 HTML。
我建议使用HTML Agility Pack来解析和更改 HTML。
什么是 Html Agility Pack (HAP)?
这是一个敏捷的 HTML 解析器,它构建了一个读/写 DOM 并支持普通的 XPATH 或 XSLT(你实际上不必了解 XPATH 或 XSLT 就可以使用它,不用担心......)。它是一个 .NET 代码库,允许您解析“网络之外”的 HTML 文件。解析器对“真实世界”格式错误的 HTML 非常宽容。对象模型与 System.Xml 的提议非常相似,但用于 HTML 文档(或流)。
源代码下载附带了一些示例项目,展示了如何使用该库。
于 2012-11-30T11:47:19.037 回答
1
正则表达式不是解析 HTML 文件的好选择。
HTML 并不严格,其格式也不规则。
Regex 用于正则表达式
您可以使用此代码来检索它HtmlAgilityPack
HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);
foreach(var item in doc.DocumentNode.SelectNodes("//li[a]"))// select li only if it has anchor tag
{
item.ParentNode.RemoveChild(item);//removed anchor tag
}
//dont forget to save
我想仅使用正则表达式删除标签文本..
Regex.Replace(input,@"(?<=<li[^>]*>)\s*<a.*?(?=</li>)","",RegexOptions.Singleline);
于 2012-11-30T11:47:59.003 回答