2011-12-12 41 views
1

我有一张HTML表格,我不能依赖它将包含多少行和/或列 - 因此使用索引编号是不可能的。下面是表的一个例子:通过兄弟单元格值和列标题选择HTML表格中的单元格

|Name|Description|Credit|Balance| 
|Bob | Rent |400.00|1000.00| 
|Jim | Car |100.00|4000.00| 

下面是HTML:

<table> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>Description</th> 
     <th>Credit</th> 
     <th>Balance</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>Bob</td> 
     <td>Rent</td> 
     <td>400.00</td> 
     <td>1000.00</td> 
    </tr> 
    <tr> 
     <td>Jim</td> 
     <td>Car</td> 
     <td>100.00</td> 
     <td>4000.00</td> 
    </tr> 
    </tbody> 
</table> 

我需要获得这永远的名字我需要的积分数。

+0

你怎么知道哪列是信用额度?它会一直有“信用”的“”?它会始终是第三列吗?,同名问题 –

+0

为什么不计算用于创建此表的数据源的数量?我想你不会手动创建数据。 –

+1

你的tbody中的th应该可能是td的。我也不确定我明白你想要做什么。也许一个例子会有所帮助? –

回答

2

明白了:

//tr[td[.="Jim"]]/td[count(ancestor::table/thead/tr/th[.="Credit"]/preceding-sibling::*)+1] 
+1

不错。我认为这将匹配任何专栏中的“吉姆”?如果Jim出现在描述栏中,可能会出现问题。 –

+0

你说得对,这个表只是一个样本表 - 幸运的是我不必担心这个在实际表中,因为我用来选择行的列是唯一的。 – jreed121

相关问题