2014-02-17 20 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,它将选择所有以下的。