使用HtmlAgilityPack获取最后一个<;tr>;html表的
我有一个html表格结构。我需要在最后的使用HtmlAgilityPack获取最后一个<;tr>;html表的,html,html-table,html-agility-pack,Html,Html Table,Html Agility Pack,我有一个html表格结构。我需要在最后的标记中获取第一个的值。这是我的桌子结构。下面的函数getFinalNodeValue需要的值是“3” 身份证件 名称 年龄 1. 苏达 21 2. 萨曼莎 25 3. 萨吉 26 下面是我使用HtmlAgilityPack编写的代码 public String getFinalNodeValue(String URL) { var webGet = new HtmlWeb(); var
标记中获取第一个
的值。这是我的桌子结构。下面的函数getFinalNodeValue需要的值是“3”
身份证件
名称
年龄
1.
苏达
21
2.
萨曼莎
25
3.
萨吉
26
下面是我使用HtmlAgilityPack编写的代码
public String getFinalNodeValue(String URL)
{
var webGet = new HtmlWeb();
var pageSource = webGet.Load(URL);
var table = pageSource.DocumentNode.SelectSingleNode("//table[@id='test']//tr[1]");
string id = null;
IEnumerable<HtmlNode> trNodes = table.DescendantsAndSelf();
foreach (var currentItem in trNodes)
{
if (currentItem == trNodes.Last())
{
IEnumerable<HtmlNode> tdNodes = currentItem.Descendants();
foreach (var x in tdNodes)
{
if(x == tdNodes.First())
{
id = x.InnerText;
}
else
{
break;
}
}
}
else
{
continue;
}
}
return id;
}
公共字符串getFinalNodeValue(字符串URL)
{
var webGet=new HtmlWeb();
var pageSource=webGet.Load(URL);
var table=pageSource.DocumentNode.SelectSingleNode(//table[@id='test']//tr[1]”);
字符串id=null;
IEnumerable trNodes=table.degenantsandself();
foreach(trNodes中的var currentItem)
{
if(currentItem==trNodes.Last())
{
IEnumerable tdNodes=currentItem.subjects();
foreach(tdNodes中的var x)
{
if(x==tdNodes.First())
{
id=x.InnerText;
}
其他的
{
打破
}
}
}
其他的
{
持续
}
}
返回id;
}
该方法不返回值。非常感谢您的帮助。您用来填充
表变量-“//表[@id='test']//tr[1]”
,选择第二个tr
元素,而不是表中的元素
这很可能是“//table[@id='test']”
此时,要将子体TR
节点提取到trNodes
变量中,应使用:
IEnumerable<HtmlNode> trNodes = table.SelectNodes("tr");
IEnumerable trNodes=table.SelectNodes(“tr”);
用于填充表变量-“//table[@id='test']//tr[1]”
的XPath选择第二个tr
元素,而不是表
这很可能是“//table[@id='test']”
此时,要将子体TR
节点提取到trNodes
变量中,应使用:
IEnumerable<HtmlNode> trNodes = table.SelectNodes("tr");
IEnumerable trNodes=table.SelectNodes(“tr”);
如果您这样更改表格:
<table id="test" runat="server">
HtmlTable myTable = this.test;
int rowCount = myTable.Rows.Count;
HtmlTableCell td = myTable.Rows(rowCount - 1).Cells(0);
string val = td.InnerText;
如果您这样更改表格:
<table id="test" runat="server">
HtmlTable myTable = this.test;
int rowCount = myTable.Rows.Count;
HtmlTableCell td = myTable.Rows(rowCount - 1).Cells(0);
string val = td.InnerText;
这应该做到:
HtmlDocument doc = new HtmlDocument();
doc.Load(MyHtmlFile);
HtmlNode node = doc.DocumentNode.SelectSingleNode("//table[@id='test']/tr[last()]/td");
Console.WriteLine(node.InnerText);
请注意该功能的用法这应该可以做到:
HtmlDocument doc = new HtmlDocument();
doc.Load(MyHtmlFile);
HtmlNode node = doc.DocumentNode.SelectSingleNode("//table[@id='test']/tr[last()]/td");
Console.WriteLine(node.InnerText);
注意函数的用法非常感谢Simon:)这很有效。这是一个更简单的方法。非常感谢:)泰回答了我要找的问题:D汉克斯:非常感谢西蒙:)这很有效。这是一个更简单的方法。非常感谢:)泰回答了我要找的问题:d