【问题标题】:Get only text from html with html agility仅从具有 html 敏捷性的 html 中获取文本
【发布时间】:2011-01-27 15:01:43
【问题描述】:

我试图从 html 中删除与 html 相关的所有内容,但我需要保留文本。例如,从这个标签:

<TR><TD> 
<B><A HREF="survival/index.html">Survival</A></B><BR> 
<I>Be Suspicious, Be Worried, Be Prepared</I><BR> 
<TD> 

我只想保留“多疑……”

我有这个方法,但是效果不太好:

    private static HtmlDocument RemoveHTML(HtmlDocument document)
    {
        HtmlDocument textOfDoc = new HtmlDocument();
        foreach (var node in document.DocumentNode.SelectNodes(".//p|.//title|.//body"))
        {
            var newNode = HtmlNode.CreateNode(node.InnerText+" ");
            textOfDoc.DocumentNode.AppendChild(newNode);
        }
        return textOfDoc;
    }

谢谢!

【问题讨论】:

    标签: html-parsing html-agility-pack


    【解决方案1】:

    看起来您只是在提取 P、TITLE 和 BODY 标记。如果你也想要 I 标签,你需要这样做:

    document.DocumentNode.SelectNodes(".//p|.//title|.//body|.//i")
    

    【讨论】:

    • 嗯不,这不是我想要的,因为我想要的是从页面中选择文本以使用 Lucene 对其进行索引。我最后所做的是用.Net 的 Tidy 之类的库清理 html 代码,然后如果我添加到 foreach ".//p|.//title|.//body" ,它工作得很好。但也谢谢! :)
    猜你喜欢
    • 2020-01-19
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2017-04-19
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多