Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xpath选择第二个tr之后的所有tr_C#_Xpath_Html Agility Pack - Fatal编程技术网

C# Xpath选择第二个tr之后的所有tr

C# Xpath选择第二个tr之后的所有tr,c#,xpath,html-agility-pack,C#,Xpath,Html Agility Pack,我使用HtmlAgilityPack我有一个html表格 <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</T

我使用HtmlAgilityPack我有一个html表格

<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>...
我得到了40个值,第一个我不需要的值是“nbsp;”和“Date”, sow我只需要修复Xpath,它将在第二秒(或者在其他情况下更多)后返回所有tr


如何更改Xpath
//tr//td[1]
,使其在第二个tr元素之后查找tr。

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

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

您可以尝试使用XPath
position()
filter,例如:

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

正如DGibbs所说,您可以使用position,应用它如下:

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

正如DGibbs所说,您可以使用position,应用它如下:

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

为什么不在XPath中更具体一些?比如:

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

为什么不在XPath中更具体一些?比如:

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

为什么不使用这个方法来跳过前两个步骤呢?我可以检查我的列表是否包含at[1]=nbsp或date,但我想用Xpath来实现这一点,我认为这更合适。为什么?这基本上是一样的,你的意图在我看来更清楚。无论如何,你可以使用。类似于
“Elem[position()>2]”
@DGibbs使用XPath实际上是有意义的,因为智能XPath处理器甚至不会触及前两个条目,而如果使用
skip()
,则可能必须序列化内容(如果这是一个大型元素,这当然更相关)。另外,XPath方法更清晰(但我是XPath/XQuery开发人员,因此这可能取决于个人背景),为什么不使用该方法来跳过前两个步骤呢?我可以检查我的列表是否包含at[1]=nbsp或date,但我想用XPath来实现这一点,我认为这更合适。为什么?这基本上是一样的,你的意图在我看来更清楚。无论如何,你可以使用。类似于
“Elem[position()>2]”
@DGibbs使用XPath实际上是有意义的,因为智能XPath处理器甚至不会触及前两个条目,而如果使用
skip()
,则可能必须序列化内容(如果这是一个大型元素,这当然更相关)。另外,我认为XPath的方式更清晰(但我是XPath/XQuery开发人员,因此这可能取决于个人背景)