2012-07-10 4 views
1

나는 테이블을 가지고있다. 그리고 td 태그 사이에서 FOO COMPANY라는 텍스트 만 입력하고 싶습니다. 그것을 어떻게 얻을 수 있습니까?테이블 안의 텍스트를 가져 오는 중

<table class="left_company"> 
    <tr> 
     <td style="BORDER-RIGHT: medium none; bordercolor="#FF0000" align="left" width="291" bgcolor="#FF0000"> 
      <table cellspacing="0" cellpadding="0" width="103%" border="0"> 
       <tr style="CURSOR: hand" onclick="window.open('http://www.foo.com')"> 
        <td class="title_post" title="FOO" valign="center" align="left" colspan="2"> 
         <font style="font-weight: 700" face="Tahoma" color="#FFFFFF" size="2">***FOO COMPANY***</font> 
        </td> 
       </tr> 
      </table> 
     </td> 
    </tr> 
<table> 

다음 코드를 사용하고 있지만 nS는 null입니다.

doc = hw.Load("http://www.foo.aspx?page=" + j); 
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//table[@class='left_company']")) 
{ 
nS = doc.DocumentNode.SelectNodes("//td[@class='title_post']"); 
} 

답변

1
var text = doc.DocumentNode.Descendants() 
       .FirstOrDefault(n => n.Attributes["class"] != null && 
           n.Attributes["class"].Value == "title_post") 
       .Element("font").InnerText; 

나처럼 그 요소를 얻기 위해 jQuery를 사용하는 등의 요소를 폰트 몇 가지 속성을 삽입

var text2 = doc.DocumentNode.SelectNodes("//td[@class='title_post']/font") 
       .First().InnerText; 
1

자바 스크립트를 사용하여 관심있는 페이지를 생성 할 가능성이 큽니다. HtmlAgilityPack은 JavaScript를 실행하지 않으므로 내용을 추출 할 수 없습니다. 이것을 확인하는 한 가지 방법은 스크립팅을 끈 상태로 페이지를 방문하여 관심있는 요소가 여전히 존재하는지 확인하는 것입니다.

+0

자바 스크립트를 그냥 페이지 사람을여십시오. 나는 그것이 js에 관한 것이라고 생각하지 않는다. – Kadir

0

닫기 : nS = doc.DocumentNode.SelectNodes("//td[@class='title_post']//text()");

그런 다음 텍스트를 검색 할 수있는 NS 개의 노드를 열 수 있습니다. 둘 이상의 텍스트 노드가있는 경우 해당 노드를 반복해야합니다.

+0

아직 null입니다. – Kadir

+0

미안 해요, 정말 망쳐 놓고 편집했습니다. – SilverbackNet

0

기업 = "FOO"

다음

alert($('font[company="FOO"]').html()) 

this 같은

환호

관련 문제