2014-01-10 7 views
-5

C#에서 htmlagilitypack을 사용하여 처리해야하는 HTML이 있습니다. 문제는 제대로 인쇄 할 수 없다는 것입니다. 예 1 :htmlagilitypack 필드 항목 가져 오기

<tr class="even"> 
    <td class="left">Names:</td><div class="field field-name-field-services field-type-reference field-label-hidden"> 
<div class="field-items"> 
<div class="field-item even">Abby</div> 
<div class="field-item odd">Mary/Joe 
</div><div class="field-item even">Cindy</div 
><div class="field-item odd">Sally</div><div class="field-ite 
m even">Zoey</div><div class="field-item odd">Donna</div><div class="field-item even">Kristie</div> 
<div class="field-item odd">Mary</div><div 
class="field-item even">Libby &amp; Monroe</div><div class="field-item odd 
">Nancy/Smith</div></div></div></td></tr> 

나는 출력이 애비 메리/조 신디 샐리 도나 마리아 리비 & 먼로 낸시/스미스가되고 싶어요.

예 2 :

<tr class="even"> 
    <td class="left">Names:</td><div class="field field-name-field-services field-type-reference field-label-hidden"> 
<div class="field-items"> 
<div class="field-item even">Cindy</div> 
<div class="field-item odd">Sally</div><div class="field-item even"> 
Linda</div></div></div></div></td></tr> 

출력이 내가 뭘하려 신디 샐리 린다

입니다.

HtmlDocument hdoc2 = new HtmlDocument(); 
hdoc2.LoadHtml(test); 
var innernode1 = hdoc2.DocumentNode.SelectNodes("//tr//td"); 
Console.Writeline(innernode1[0].innertext); 

개체 인스턴스가 개체 오류 인스턴스로 설정되지 않습니다. 이름을 써야하지 않니?

+0

'개체 인스턴스가 개체의 인스턴스로 설정되지 않았습니다.'라는 코드가 없습니다. 그것은 컴파일 할 수 없습니다 (컴파일 오류를 수정 한 후 테스트하고'Names :'를 반환했습니다). ** 실제 코드 게시 ** –

+0

내 프로그램 – user2726975

+1

의 실제 코드입니다. a) 'Writeline'이 아닌 'WriteLine'입니다. b) InnerText'가 아니라 'innertext'입니다. 어떻게 실제 코드가 될 수 있습니까? 컴파일 할 수없는 코드로 어떻게이 런타임 예외를 얻을 수 있습니까? 독자를 존중하고 올바른 질문을하기 위해 시간을내어주십시오. –

답변

1

당신이 원하는 모든 텍스트 노드를 선택해야합니다 시도

hdoc2.DocumentNode.SelectNodes("//items/div[starts-with(@class, 'item')]/text()"); 

사용.