2010-12-05 2 views
4

Я хочу получить содержимое упорядоченного списка с HTML-страницы с помощью HTMLAgilityPack в C#, я пробовал следующий код, но это не работает, кто-нибудь может помочь, я хочу передать html-текст и получить содержимое первого упорядоченный список находится в HTMLКак получить содержимое элемента HTML с помощью HtmlAgilityPack в C#?

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

Хороший ответ. Проголосовали за UP – koolprasad2003 2014-06-03 12:34:02

Смежные вопросы