当表包含列生成单元格时,使用目标c和xpath查找列索引

时间:2012-08-06 17:05:07

标签: iphone html objective-c xpath libxml2

我在iPhone应用程序中使用hpple和libxml2解析表。当兄弟单元格使用colspan跨越多行时,我遇到了一个真正的问题。

我看到this question 但是我不能用jquery来计算专栏。

考虑下表

<table>
  <tbody>
    <tr>
      <td>One</td>
      <td>Two</td>
      <td id="example1">Three</td>
      <td>Four</td>
      <td>Five</td>
      <td>Six</td>
    </tr>
    <tr>
      <td colspan="2">One</td>
      <td colspan="2">Two</td>
      <td colspan="2" id="example2">Three</td>
    </tr>
    <tr>
      <td>One</td>
      <td>Two</td>
      <td>Three</td>
      <td>Four</td>
      <td>Five</td>
      <td>Six</td>
    </tr>
  </tbody>
</table>

如何将id为'example1'的单元格的列索引设为6 NOT 3?

编辑添加更多细节

NSString *xpathQuery = [NSString stringWithFormat:@"1 
+ count(//a[contains(@href,'testHref')]
/../preceding-sibling::td[not(@colspan)])
+ sum(//a[contains(@href,'testHref')]/../preceding-sibling::td/@colspan)
+ sum(@colspan)
- count(@colspan)",bookingUrl, bookingUrl];

//Execute XPath
NSArray *array = [parser searchWithXPathQuery:columnCount];

1 个答案:

答案 0 :(得分:0)

这似乎有效:

1 + count(preceding-sibling::td[not(@colspan)])
+ sum(preceding-sibling::td/@colspan)
+ sum(@colspan)
- count(@colspan)

<td>的xpath作为当前节点运行。