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进行处理,非常感谢!