HtmlAgilityPack에서 XPath를 파악할 수 없습니다.

c# html-agility-pack xpath

문제

내 첫 번째 C # 응용 프로그램을 만들려고 노력하고있다 ( "Hello world"라고하는 것 이상을 할 수 있음).

이제 html 파일에는 많은 태그가 있지만 (아래에 주어진 두 개의 h4 태그 만 있습니다.) 여기에 내가 관심있는 부분이 있습니다.

<table width="100%" height="400" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#111111" background="images/page_bg.gif" style="BORDER-COLLAPSE: collapse">

<tbody valign="top">
<tr>
<td>

<table width="80%" border="0" valign=top background="images/page_bg.gif">
 <tr>
 <td>

  <div align="center">
   <h4 align="center">
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <b>
      <font size="4" face="Arial, Helvetica, sans-serif">
      UNWANTED TEXT
       </font></b></font></h4>

  <p><br />
  Name  :  {NAME HERE} <br>Number : {NUMBERS HERE}<br>Number2 : {NUMBERS2}<br><br><h4>UNWANTED TEXT</h4><br>detail NO.  :  <span class=style7>{NUmbers3}</span><br><br><a href=http://test.xom>UNWANTED TEXT</a><br><br>                    
  </p>
  <p class="content"><em><strong>
  <p>&nbsp;</p>

나는 NAME, Numbers1, Numbers2, Numbers3을 얻고 싶다. 그래서 나는 이것과 같은 것을해야한다고 생각한다.

 //div[@align = "centre"]/h4/followingsibling::Text();

하지만 분명히 불완전하다. 어떻게해야 하는가에 대한 아이디어는 불타고있다. /html/body/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[2]/td/div/table/tbody/tr/td/table/tbody/tr/td/div/h4

나는 또한 (원시 데이터를 먼저 가져온 다음 더 트리밍하는 것으로) 시도했다.

 HtmlNodeCollection node = doc.DocumentNode.SelectNodes("//table[@height='400']//div[@align='centre']"//p);
            foreach(HtmlNode node1 in node)    
                textBox1.Text += node1.InnerText;

그러나 여기에 노드가 NULL로 전달됩니다 어떤 도움을 주시면 감사하겠습니다.

수락 된 답변

파이어 폭스는 테이블에 tbody 태그를 추가합니다 (이 태그는 없을 수 있습니다). 그래서, 모든 경로를 쓰지 말고 가장 특징적인 경로를 찾고 // 사용하도록 제안합니다. 예를 들어, // div [@ class = 'data'] / table // tr / td


인기 답변

@align="centre" 있지만 HTML은 align="center" (영국 대 미국 맞춤법)과 같은 것을 알았습니까?



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.