0

我在html agility pack的帮助下解析 html 表格信息。现在首先我在该表中找到行

var rows = table.Descendants("tr");

然后我找到每一行的单元格数据

foreach(var row in rows)
{
     string rowInnerText = row.InnerText;
}

这给了我单元格数据。但是它们之间没有空格,比如NameAdressPhone No但我想要内部文本,比如Name Address Phone No意味着哪里有td 标签,我想在不同的列单元格之间保留一个空格

4

1 回答 1

1

这是一个想法,但完全未经测试:

var rows = table.Descendants("tr").Select(tr =>
    string.Join(" ", tr.Descendants("td").Select(td => td.InnerText).ToArray()));

这应该为您提供IEnumerable<string>每个包含的元素代表表格中的一行的位置,格式为您的问题中描述的格式。如果您确实需要对行进行循环以进行其他处理,请保留foreach循环并在其主体中使用 LINQ 魔法:

var rows = table.Descendants("tr");

foreach (var row in rows)
{
     string rowInnerText = string.Join(" ",
         row.Descendants("td").Select(td => td.InnerText).ToArray());
}
于 2010-04-03T10:42:43.617 回答