2010-04-03 70 views
0

我使用html敏捷包帮助解析html表格信息。现在,首先我发现排在表像解析带有空格的表格单元格数据,其中有td标签

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

然后我发现每一行的单元格数据,如

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

这给了我的细胞data.But与他们之间没有空格like 名称地址电话号码但我想要的密文如姓名地址电话号码意味着哪里有td标签我想保留在那里diffe之间有一个空格租用列单元格

回答

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()); 
} 
+0

@Jorn休乌 - 罗德,非常感谢您的answer.In第二码有什么缺失,因为我得到的错误tr不存在在这种情况下。 – Harikrishna 2010-04-03 11:01:26

+0

@Harikrishna:我的坏,把'td'和'row'混在一起。现在应该修复。 – 2010-04-03 11:08:26

+0

@Jon Schou-Rode,不,我已经检查过,但列标题之间没有空格,并得到了我第一次得到的结果。 – Harikrishna 2010-04-03 11:09:26

相关问题