2013-06-14 4 views
0

를 분석 나는 각 클래스 "postrow"를 가진 div에 또한 <div class="postrow first"> 같은 다른 클래스를 가질 수에서 나는 다음과 같은 일을 추출 할이 HTML을C# HtmlAgilityPack HTML 문제

<div class="postrow firs"> 
     <h2 class="title icon"> 
      This is the title 
     </h2> 
     <div class="content"> 
      <div id="post_message_1668079"> 
       <blockquote class="postcontent restore "> 
       <div>Category</div> 
             <div>Authour: Kim</div> 
        line 1<br /> line2 
       </blockquote> 
      </div> 
     </div> 
    </div>  <div class="postrow"> 
     <h2 class="title icon"> 
      This is the title 
     </h2> 
     <div class="content"> 
      <div id="post_message_1668079"> 
       <blockquote class="postcontent restore "> 
       <div>Category</div> 
        line 1<br /> line2 
       </blockquote> 
      </div> 
     </div> 
    </div> 

있습니다. 따라서 "첫 번째"클래스는 내 관심사가 아닙니다. 처음에는 "포스트로 우"가 필요합니다.

  1. 클래스 제목
  2. 은 "인용구"태그에서 HTML로 태그 내부의 콘텐츠입니다. 그러나이 태그를 가진 div는 없습니다.

코드 나는 시도 :

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
      doc.LoadHtml("http://localhost/vanilla/"); 
      List<string> facts = new List<string>(); 
      foreach (HtmlNode li in doc.DocumentNode.SelectNodes("//div[@class='postrow']")) 
      { 
       facts.Add(li.InnerHtml); 
       foreach (String s in facts) 
       { 
        textBox1.Text += s + "/n"; 
       } 
      } 

답변

1

귀하의 코드 대신

var request = (HttpWebRequest)WebRequest.Create("http://localhost/vanilla/"); 
String response = request.GetResponse(); 

doc.loadHtml(response); 

이제 구문 분석을 반복하지 경로를 문자열로

doc.LoadHtml("http://localhost/vanilla/"); 

를 HTML을 제공 할 문제가 있습니다 html