无法找出HtmlAgilityPack中的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,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();
但是肯定是不完整的,关于如何执行的任何想法,我从firebug获得了Xpath:
/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;
但是这里的Node作为NULL传递 任何帮助是极大的赞赏。     

解决方法

        Firefox在表中添加了tbody标签(在原始html中可能没有此标签)。因此,我建议不要写所有路径,找到最具特征的路径并使用//。 例如,// div [@class = \'data \'] / table // tr / td     ,        您是否注意到自己有
@align=\"centre\"
,但HTML却有
align=\"center\"
(例如,英式拼写与美式拼写一样)?