2011-01-27 49 views
0

我试图从html中删除与html敏捷性有关的所有html,但我需要保留文本。例如,从这个标签:从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; 
    } 

谢谢!

回答

0

它看起来像只提取P,TITLE和BODY标签。如果你还想要I标签,你需要这样做:

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

嗯不是,这不是我想要的,因为我想要的是从页面中选择文本以使用Lucene索引它。 我最后做的是用像Tidy .Net这样的库清理html代码,然后如果我添加到foreach中“.//p|.//title|.body”,它工作得很好。 但是,也要感谢! :) – Coconut 2011-02-09 09:12:17