2012-04-30 4 views
1

나는 그것을 추출해야하는 정보가있는 거대한 HTML 문자열을 읽고 있습니다. 검색 매개 변수 (구문 분석 할 위치)를 설정할 수는 있지만 StreamReader을 사용하여 임시 파일에 저장하지 않고 어떻게이 작업을 수행 할 수 있습니까?검색 문자열, 다음 행 검색

예 :

User.UserName = "Mark TheMan"; 
User.Department = "Programming"; 
User.OfficePhone = "555-555-5555"; 

당신은 내가 필요 참조 : 난 그냥 (문자열) 다양한 필드에 클래스의 일부 속성을 설정해야

//Pertinent data starts here: 
<!-- 
    body for the page starts here 
--> 

    <table border="0" > 
     <tr> 
     <td class='HeaderTD'><b>User Name</b></td> 
     <td class='HeaderTD'><b>Mark TheMan</b></td> 
     </tr> 
     <tr> 
     <td class='DataTD_Black_Bold '>Department</td> 
     <td class='DataTD'>Programming</td> 
     </tr> 
     <tr> 
     <td class='DataTD_Black_Bold '>Office Phone</td> 
     <td class='DataTD'>555-555-5555</td> 
     </tr> 
     <tr> 
     <td class='DataTD_Black_Bold '>Office Ext</td> 
     <td class='DataTD'>x5555</td> 

"<b>User Name</b>"과 같은 것을 포함하는 라인을 검색하면 다음 라인을 반환하므로 원하는 데이터를 파싱 할 수 있습니다. 더 많은 정보가 필요하시면 알려주세요, 감사합니다!

+0

HTTP 여기

테이블에서 데이터를 추출하는 것이 얼마나 쉬운 당신을 보여줄 수있는 작은 콘솔 응용 프로그램입니다 : //htmlagilitypack.codeplex.com/ –

답변

3

당신은 Html 파서를 사용해야합니다. HtmlAgilityPack은 매우 좋습니다.

static void Main(string[] args) 
{ 
    HtmlDocument doc = new HtmlDocument(); 
    doc.Load("example.html"); 
    foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table")) 
    { 
    foreach (HtmlNode row in table.SelectNodes("tr")) 
    { 
     foreach (HtmlNode cell in row.SelectNodes("th|td")) 
     { 
     Console.WriteLine("Cell value : " + cell.InnerText); 
     } 
    } 
    } 
} 

그리고 당신의 예를 출력

이 될 것입니다 :

Cell value : User Name 
Cell value : Mark TheMan 
Cell value : Department 
Cell value : Programming 
Cell value : Office Phone 
Cell value : 555-555-5555 
+0

전에 이것을 보았습니다 ... HTML에 처음 익숙하지만 어디서부터 시작해야할지 모르겠습니다. 그들은 많은 문서를 제공하지 않는 것 같습니다. 파서를 사용하여 내가 찾고있는 정보를 반환 할 수있는 샘플이 있습니까? – ikathegreat

+0

또한 나는 HTML 텍스트를 얻는 것이 고통 스럽다는 것을 알고 싶었고 사이트는 특정한 자격 증명을 필요로했다. HTML 민첩성 팩이 그에 맞는지 확실하지 않습니다. – ikathegreat

+0

은 HTML 민첩성 팩과 아무 관련이 없습니다. HTML을 얻은 다음 HTML 민첩성 팩으로 전달해야합니다. 그리고 그것은 정말 쉽습니다. HAP Explorer (http://htmlagilitypack.codeplex.com/releases/view/44954#DownloadId=120936)로 게임을 시도하면 –