Xpath和表

时间:2014-02-17 18:01:56

标签: c# xpath html-table

这是我第一次使用XPath查询。我知道它是如何工作的但我似乎无法从这张表中获得正确的信息。我把它归咎于设计不佳的桌子。

相关表的Xpath路径 - / table [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,其中table是包含上面代码为InnerHTML的HTMLNODE,那么我得到名字“Norman White”,但我似乎无法以任何方式得到第二个名字

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用SelectNodes代替SelectSingleNode? :)
SelectNodes vs SelectSingleNode

此外,您的Xpath可能更清晰,例如//table/tbody/tr[1]//span。如果您未选择 first tr,则会选择以下所有内容。