Xpath在第二个tr之后选择所有tr

时间:2014-06-30 09:37:27

标签: c# xpath html-agility-pack

我使用HtmlAgilityPack我有一个html of table

<TABLE class=default cellSpacing=0 width="95%" border=0 name="LISTA_MOV"><TBODY>
<TR>
<TD class=normal colSpan=5 align=center>ACCOUNT IN&nbsp;EUR: ES1030580147982720000036 - HAZERA ESPAÑA</TD></TR>
<TR>
<TD class=columnas vAlign=top width=80 align=center>Date</TD>
<TD class=columnas vAlign=top width=60 align=center>Value date</TD>
<TD class=columnas vAlign=top align=center>Reference</TD>
<TD class=columnas vAlign=top align=center>Amount</TD>
<TD class=columnas vAlign=top align=center>Balance</TD></TR>
<TR>
<TD class=columnas vAlign=top width=80 align=center><INPUT onclick="sortTable('LISTA_MOV',0,true,'Date');" alt="Ordenar Ascendente" src="/BE/util_apoyo/img/esp/orden_1.gif" type=image border=0 name=Sort>&nbsp;<INPUT onclick="sortTable('LISTA_MOV',0,false,'Date');" alt="Ordenar Descendente" src="/BE/util_apoyo/img/esp/orden_2.gif" type=image border=0 name=Sort_Date_down0></TD>...

当我尝试使用Xpath "//tr//td[1]"

时,(在具有日期值的td中)
 GeneralUtils.GetListDataFromHtmlSourse(PageData, "//tr//td[1]");

我获得了40个价值观,而第一个我不需要他们是#34; NBSP;&#34;和&#34;日期&#34;, 母猪我只需要修复我的Xpath,它将在第二次(或更多其他情况下)返回我所有的

如何在第二个tr元素之后更改它将寻找tr的Xpath //tr//td[1]

3 个答案:

答案 0 :(得分:3)

您可以尝试使用XPath position()过滤器,例如:

//tr[position() > 2]//td[1]

答案 1 :(得分:1)

像DGibbs说你可以使用位置,像:

GeneralUtils.GetListDataFromHtmlSourse(PageData, "//tr[position() > 2]//td[1]");

答案 2 :(得分:1)

为什么不在XPath中更具体?类似的东西:

/TABLE[@name='LISTA_MOV']/tr[position() > 1]/td[1]