HTML文档处理控件Aspose.HTML功能演示:在C#中将HTML转换为纯文本或从HTML提取文本

HTML的内容使用不同的标签进行区分,可以使用C#语言轻松地将HTML转换为纯文本,而忽略开始和结束标记。

HTML是一种标记语言,广泛用于网站,Web应用程序等中。HTML的内容使用不同的标签进行区分。您可以使用C#语言轻松地将HTML转换为纯文本,而忽略开始和结束标记。

同样,根据您的要求,可能会有一些级联的样式表规范,JavaScript或HTML的任何其他部分。因此,就像从HTML文档中提取文本一样。让我们浏览以下部分以获取详细信息:

  • 在C#中使用INodeIterator将HTML转换为文本文件
  • 使用C#以不同的方法从HTML提取文本
  • 使用C#将URL网页HTML转换为文本

您可以使用Aspose.HTML for .NET API将HTML转换为纯文本,点击下方按钮下方使用。


17周年庆来啦!整合所有格式API处理控件Aspose.Total永久授权火热促销中,新购乐享85折起!联系客服立马1分钟了解全部!


在C#中使用INodeIterator将HTML转换为文本文件

用于.NET API的Aspose.HTML基于DOM(文档对象模型),因此您可以使用INodeIterator接口在API的不同节点之间进行迭代。同样,它使您可以定义一个NodeFilter并覆盖用于过滤内容的方法的控件。您可以忽略样式,脚本或HTML文件中的任何其他元素,仅从其中选择文本字符串。以下是使用C#将HTML转换为纯TXT文件的步骤:

  1. 读取输入的HTML文件
  2. 初始化节点迭代器的实例
  3. 创建INodeIterator实例
  4. 检查样式过滤器
  5. 读取字符串中的节点值
  6. 将HTML的文本内容写入TXT文件

下面的代码显示了如何使用C#将HTML转换为纯文本文件:

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属性:

  1. 加载输入的HTML文档
  2. 定义用户定义的方法
  3. 检查每个NodeType以查看它是元素节点还是文本节点
  4. 使用TextContent属性获取文本元素
  5. 保存输出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文件:

  1. 初始化HTMLDocument对象并指定URL
  2. 阅读HTML格式的文本内容
  3. 使用从网页中提取的文字写入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进行处理,非常感谢!

上一篇 2020年11月15日
下一篇 2020年11月15日

相关推荐

发表回复

登录后才能评论