62,051
社区成员
发帖
与我相关
我的任务
分享
<table>
<tr>
<td>姓名</td>
<td>学号</td>
<td>学分</td>
</tr>
<tr>
<td>张三</td>
<td>
<table>
<tr>
<td>201505047</td>
</tr>
</table>
</td>
<td>52</td>
</tr>
<tr>
<td>李四</td>
<td>
<table>
<tr>
<td>201502072</td>
</tr>
</table>
</td>
<td>65</td>
</tr>
</table>
using Less.Html;
using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string testHtml =
@"<table>
<tr>
<td>姓名</td>
<td>学号</td>
<td>学分</td>
</tr>
<tr>
<td>张三</td>
<td>
<table>
<tr>
<td>201505047</td>
</tr>
</table>
</td>
<td>52</td>
</tr>
<tr>
<td>李四</td>
<td>
<table>
<tr>
<td>201502072</td>
</tr>
</table>
</td>
<td>65</td>
</tr>
</table>";
var q = HtmlParser.Query(testHtml);
for (int i = 0; i < q("td").length; i++)
Console.WriteLine(q("td")[i].textContent);
Console.ReadLine();
}
}
}
{
"1": {
"1": "姓名",
"2": "学号",
"3": "学分"
},
"2": {
"1": "张三",
"2": "201505047",
"3": "52"
},
"3": {
"1": "201505047"
},
"4": {
"1": "李四",
"2": "201502072",
"3": "65"
},
"5": {
"1": "201502072"
},
"6": {
"1": "201505047"
},
"7": {
"1": "201502072"
}
}
而我想要的结果如下:
{
"1": {
"1": "姓名",
"2": "学号",
"3": "学分"
},
"2": {
"1": "张三",
"2": "201505047",
"3": "52"
},
"3": {
"1": "李四",
"2": "201502072",
"3": "65"
}
}
这个该如何处理??
//行结果集
IEnumerable<HtmlNode> getCont = htmls.CssSelect("tr");
var i = 1;
//取行结果集的列数据
foreach (var htmlNode in getCont)
{
JObject jobj = new JObject();
//取列数据
IEnumerable<HtmlNode> getContList = htmlNode.CssSelect("td");
var j = 1;
foreach (var htmlNodes in getContList)
{
jobj.Add(j.ToString(), htmlNodes.InnerText.Trim());
j++;
}
i_obj.Add(i.ToString(), jobj);
i++;
}
其中htmls即为取到的html,如上面举例的table.