如何使用xpath 1.0在两个节点之间获取节点?

时间:2013-12-13 20:06:40

标签: c# xml xpath html-agility-pack

有以下html表。如何使用xpath(Html敏捷包)获取“Session X”的所有tr? (在<tr><td colspan=15>Session X</td></tr>和下一个会话之间tr

有两个问题,

  1. 比较 Session X 时,是否可以放松一下?因为它可能是

    Session X
    Session  X
    session_X
    
  2. 下一个会话文本可以是“会话X”以外的任何内容。也许最好检查<tr>是否只包含一个<td colspan=15>

  3. XML / HTML:

    <table>
    <tr><td colspan=15>Session A</td></tr>
    .......
    <tr><td colspan=15>Session X</td></tr>
    <tr><td>...</td><td>Column header 1</td><td>value1</td><td>value2</td>......</tr>
    <tr><td>...</td><td>Column header 2</td><td>value1</td>......</tr>
    <tr><td>...</td><td>Column header 3</td><td>value1</td>......</tr>
    .....
    <tr><td colspan=15>Session Y</td></tr> <!--next session, the inner text can be anything-->
    .....
    

1 个答案:

答案 0 :(得分:1)

这应该为tr提供信息:

.//tr[preceding-sibling::tr/td/text()='Session X'][following-sibling::tr/td/text()='Session Y']

我认为您没有发送足够的信息来了解如何从那里继续。