首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C#中将HTML转换为文本?

在C#中将HTML转换为文本,可以使用一些第三方库,例如HtmlAgilityPack。HtmlAgilityPack是一个用于解析HTML文档的强大的.NET库,它允许您轻松地从HTML文档中提取数据。以下是如何使用HtmlAgilityPack将HTML转换为纯文本的示例:

  1. 首先,安装HtmlAgilityPack库。在NuGet包管理器中运行以下命令:Install-Package HtmlAgilityPack
  2. 然后,在C#代码中使用HtmlAgilityPack库:using System; using HtmlAgilityPack; class Program { static void Main(string[] args) { string html = "<html><body><h1>示例HTML</h1><p>这是一个<b>简单</b>的HTML文档。</p></body></html>"; string text = ConvertHtmlToPlainText(html); Console.WriteLine(text); } public static string ConvertHtmlToPlainText(string html) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(html); // 删除脚本和样式元素 RemoveElements(htmlDoc.DocumentNode, "script"); RemoveElements(htmlDoc.DocumentNode, "style"); // 将HTML转换为纯文本 return ExtractTextFromHtmlNode(htmlDoc.DocumentNode); } private static void RemoveElements(HtmlNode node, string elementName) { foreach (var element in node.DescendantsAndSelf(elementName)) { element.Remove(); } } private static string ExtractTextFromHtmlNode(HtmlNode node) { StringBuilder sb = new StringBuilder(); foreach (var childNode in node.ChildNodes) { switch (childNode.NodeType) { case HtmlNodeType.Comment: // 忽略注释 break; case HtmlNodeType.Element: // 如果是一个换行元素,添加换行符 if (childNode.Name == "br" || childNode.Name == "p") { sb.AppendLine(); } else if (childNode.Name == "script" || childNode.Name == "style") { // 忽略脚本和样式元素 } else { // 递归处理子节点 string childText = ExtractTextFromHtmlNode(childNode); if (!string.IsNullOrWhiteSpace(childText)) { sb.Append(childText); } } break; default: // 添加文本节点内容 sb.Append(childNode.InnerHtml); break; } } return sb.ToString(); } }

这个示例将删除脚本和样式元素,并将HTML文档转换为纯文本。您可以根据需要修改此示例以适应您的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券