HTML的内容使用不同的标签进行区分,可以使用C#语言轻松地将HTML转换为纯文本,而忽略开始和结束标记。
HTML是一种标记语言,广泛用于 站,Web应用程序等中。HTML的内容使用不同的标签进行区分。您可以使用C#语言轻松地将HTML转换为纯文本,而忽略开始和结束标记。
同样,根据您的要求,可能会有一些级联的样式表规范,JavaScript或HTML的任何其他部分。因此,就像从HTML文档中提取文本一样。让我们浏览以下部分以获取详细信息:
- 使用C#以不同的方法从HTML提取文本
- 使用C#将URL 页HTML转换为文本
您可以使用Aspose.HTML for .NET API将HTML转换为纯文本,点击下方按钮下方使用。
17周年庆来啦!整合所有格式API处理控件Aspose.Total永久授权火热促销中,新购乐享85折起!联系客服立马1分钟了解全部!
用于.NET API的Aspose.HTML基于DOM(文档对象模型),因此您可以使用INodeIterator接口在API的不同节点之间进行迭代。同样,它使您可以定义一个NodeFilter并覆盖用于过滤内容的方法的控件。您可以忽略样式,脚本或HTML文件中的任何其他元素,仅从其中选择文本字符串。以下是使用C#将HTML转换为纯TXT文件的步骤:
- 读取输入的HTML文件
- 初始化节点迭代器的实例
- 创建INodeIterator实例
- 检查样式过滤器
- 读取字符串中的节点值
- 将HTML的文本内容写入TXT文件
String content = File.ReadAllText(dataDir + "Test2.html");// Create an instance of HTML documentusing (var document = new HTMLDocument(content, "")){ // The first way of gathering text elements from document // Initialize the instance of node iterator Aspose.Html.Dom.Traversal.INodeIterator iterator = document.CreateNodeIterator(document, Aspose.Html.Dom.Traversal.Filters.NodeFilter.SHOW_TEXT, new StyleFilter()); StringBuilder sb = new StringBuilder(); Aspose.Html.Dom.Node node; while ((node = iterator.NextNode()) != null) sb.Append(node.NodeValue); Console.WriteLine(sb.ToString()); File.WriteAllText(@"NodeIterator.txt", sb.ToString());}////// Represents a user filter created in order to ignore content of the 'style' and 'script' element.///class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter{ public override short AcceptNode(Aspose.Html.Dom.Node n) { //If you want to avoid any element, write its name in capital letters return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" FILTER_REJECT : FILTER_ACCEPT); }}
使用C#以不同的方法从HTML提取文本
我们已经学习了如何使用INodeIterator将HTML转换为Text。同样,还有其他几种方法可以满足这些要求。您可以创建自定义方法来提取文本,也可以按照以下步骤中的说明使用TextContent属性:
- 加载输入的HTML文档
- 定义用户定义的方法
- 检查每个NodeType以查看它是元素节点还是文本节点
- 使用TextContent属性获取文本元素
- 保存输出TXT文件
下面的代码段说明了在C#中将HTML转换为纯文本的两种不同方法:
String text = "";String content = File.ReadAllText(dataDir + "Test2.html");// Create an instance of HTML documentvar document = new HTMLDocument(content, "");// The second way of gathering text elements from document by using custom methodtext = GetContent(document.Body);File.WriteAllText("Test.txt", text);// The third way of gathering text elements from document by using TextContent propertytext = document.Body.TextContent;File.WriteAllText("Test.txt", text);static string GetContent(Aspose.Html.Dom.Node node){ StringBuilder sb = new StringBuilder(); foreach (var n in node.ChildNodes) { if (n.NodeType == Aspose.Html.Dom.Node.ELEMENT_NODE) sb.Append(GetContent(n)); else if (n.NodeType == Aspose.Html.Dom.Node.TEXT_NODE) sb.Append(n.NodeValue); } return sb.ToString();}
使用C#将URL 页HTML转换为文本
我们已经介绍了脱机 页HTML到文本的转换,其中要求HTML文件通过将其下载到磁盘上而存在。让我们更进一步,您甚至不需要将HTML文件保存在磁盘上。您可以通过使用C#将 页的URL指定为URL直接转换为TXT文件。例如,让我们通过以下步骤将Aspose.HTML for .NET API的产品页面转换为TXT文件:
- 初始化HTMLDocument对象并指定URL
- 阅读HTML格式的文本内容
- 使用从 页中提取的文字写入TXT文件
下面的代码显示了如何使用C#将URL 页HTML转换为文本:
// Initialize HTMLDocument object with URLHTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net"); // Read the text contents of the HTML formatString text = document.Body.TextContent; // Write the TXT file with extracted textFile.WriteAllText("Webpage.txt", text);
还想要更多吗可以点击阅读【2020 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!