2014-02-17 22 views
0

這是我第一次使用XPath查詢。我知道它是如何工作的,但我似乎無法從這張表中獲得正確的信息。我把它歸咎於設計不佳的桌子上。有問題的表Xpath和表格

的XPath路徑 - /臺1/TBODY [1]/TR [1]

這條道路給了我下面的信息。

<tr>   
    <td style="vertical-align:top">   
    <table style="white-space:nowrap">    
    <tbody> 
    <tr>    
     <td style="white-space:nowrap">    
      <span style="font-weight:bold">Norman White</span></td></tr> 

<tr> 
    <td style="white-space:nowrap"> 
    <span style="font-weight:bold">Is Married: </span>Yes</td></tr> <tr>    
    <td style="white-space:nowrap"> 
    <span style="font-weight:bold">DOB: </span>birthdate</td></tr><tr> 
<td style="white-space:nowrap"> 
<div>  
    <span style="font-weight:bold">SSN: </span>XXX-XX-xxxx</div></td></tr</tbody>table></td>  

    <td style="width:20px"> 
    <td style="vertical-align:top"> 
     <table style="white-space:nowrap"> 
<tbody> 
    <tr> 
    <td style="white-space:nowrap"> 
    <span style="font-weight:bold">Lynnea White</span></td></tr> 
<tr> 
    <td style="white-space:nowrap"> 
<span style="font-weight:bold">Is Married: </span>Yes</td></tr> 
<tr> 
    <td style="white-space:nowrap"> 
    <span style="font-weight:bold">DOB: </span>birthdate</td></tr> 
<tr> 
<td style="white-space:nowrap"> 
<div> 
<span style="font-weight:bold">SSN: </span>XXX-XX-xxxx</div></td></tr></tbody></table>  </td>   
    <td style="width:20px">  </td></td></tr> 

我想提取這兩個名字。 如果我使用table.SelectSingleNode("//table/tbody/tr/td//span").InnerText,其中表是一個包含上面的代碼爲InnerHTML的HTMLNODE,那麼我會得到第一個名字「諾曼白」,但我似乎無法以任何方式得到第二個名稱。

+1

請您用正確的縮進格式化您的HTML嗎?如果您的文檔樹全部位於同一行上,沒有人可以幫助您使用XPath ... – Tomalak

回答

1

您是否考慮過使用SelectNodes而不是SelectSingleNode? :)
SelectNodesVSSelectSingleNode

而且,你的Xpath可能是類似//table/tbody/tr[1]//span清晰。如果您不選擇第一個tr,它將選擇所有以下的。