我用以下代码开始我的代码:
private int GetSizeOf(IEnumerable<HtmlNode> tables)
{
int size = 0;
var infos = tables.ElementAt(0).Elements("td");
foreach (var info in infos)
size++;
return (size);
}
private void saveButton_Click(object sender, EventArgs e)
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(tooltip.GetToolTip(labelFile));
var element = doc.DocumentNode
.Element("html")
.Element("body")
.Element("div")
.Element("center");
var tables = element.Elements("table").ElementAt(2).Elements("tr");
arrayInfos = new string[GetSizeOf(tables), tables.Count()];
}
我想在html中获取表(td)的值,我想将所有值存储在多维数组中(display_name(0.x),pseudo(1.x),age(2.x),确认(3.x),管理员(4.x))
HTML代码看起来像这样:
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="80%">
<tr>
<td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">display_name</font></b></td>
<td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">pseudo</font></b></td>
<td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">age</font></b></td>
<td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">confirmed</font></b></td>
<td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">admin</font></b></td>
</tr>
<tr>
<td bgcolor="#FFF7F2">Example</td>
<td bgcolor="#FFF7F2">Example</td>
<td bgcolor="#FFF7F2">20</td>
<td bgcolor="#FFF7F2">1</td>
<td bgcolor="#FFF7F2">0</td>
</tr>
我怎么能这样做?
答案 0 :(得分:0)
var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(...);
var element = doc.DocumentNode
.Element("html")
.Element("body")
.Element("div")
.Element("center");
var trs = element.Element("table").Elements("tr").ToArray();
var array = new string[trs.Length, trs[0].Elements("td").Count()];
for (int row = 0; row < trs.Length; row++)
{
var tds = trs[row].Elements("td").ToArray();
for (int col = 0; col < tds.Length; col++)
{
array[row, col] = tds[col].InnerText;
}
}