2010-12-05 172 views
4

我想從HTML頁面中使用HTMLAgilityPack在C#中的有序列表的內容,我已經嘗試了下面的代碼,但是,這是行不通的任何人都可以幫助,我想通過HTML文本並獲取第一個在HTML如何在C#中使用HtmlAgilityPack獲取HTML元素的內容?

private bool isOrderedList(HtmlNode node) 
{ 
    if (node.NodeType == HtmlNodeType.Element) 
    { 
     if (node.Name.ToLower() == "ol") 
      return true; 
     else 
      return false; 
    } 
    else 
     return false; 
} 

public string GetOlList(string htmlText) 
{ 
    string s=""; 
    HtmlDocument doc = new HtmlDocument(); 
    doc.LoadHtml(htmlText); 
    HtmlNode nd = doc.DocumentNode; 
    foreach (HtmlNode node in nd.ChildNodes) 
    { 
     if (isOrderedList(node)) 
     { 
      s = node.WriteContentTo(); 
      break; 
     } 
     else if (node.HasChildNodes) 
     { 
      string sx= GetOlList(node.WriteTo()); 
      if (sx != "") 
      { 
       s = sx; 
       break; 
      } 
     } 
    } 
    return s; 
} 

回答

3

下面的代碼爲我工作

public static string GetComments(string html) 
{ 
    HtmlDocument doc = new HtmlDocument(); 
    doc.LoadHtml(html); 
    string s = ""; 
    foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//ol")) 
    { 
     s += node.OuterHtml; 
    } 

    return s; 
} 
2

發現有序列表如何:

var el = (HtmlElement)doc.DocumentNode 
    .SelectSingleNode("//ol"); 
if(el!=null) 
{ 
    string s = el.OuterHtml; 
} 

(未經測試,從內存中)

+0

不錯的答案。投票了 – koolprasad2003 2014-06-03 12:34:02

相關問題