C#如何将HTML表格的href链接提取后插入生成的JSON中
实现方案
你原有代码已经完成了基础列名与文本值的提取,仅需额外提取两个有效<a>标签的href属性,映射为PDF和User字段即可,修改后完整代码如下:
Dictionary<string, object> myDict = new Dictionary<string, object>(); foreach (var table in doc.DocumentNode.SelectNodes("//table[@id='formTbl']")) { foreach (var row in table.SelectNodes("tbody/tr")) { var cells = row.SelectNodes("td"); // 原有逻辑提取列名和对应文本值,增加Trim处理多余空白字符 myDict.Add(cells[0].InnerText.Trim(), cells[1].InnerText.Trim()); // 新增逻辑提取有效链接 var links = cells[1].SelectNodes(".//a"); if (links != null) { foreach (var link in links) { var href = link.GetAttributeValue("href", string.Empty).Trim(); // 过滤空链接和javascript类无效功能链接 if (string.IsNullOrEmpty(href) || href.StartsWith("javascript:")) continue; // 按链接特征匹配对应字段 if (href.EndsWith(".pdf")) { myDict["PDF"] = href; } else if (href.Contains("/User/")) { myDict["User"] = href; } } } } } var json = JsonConvert.SerializeObject(myDict, Newtonsoft.Json.Formatting.Indented); Console.WriteLine(json);
执行上述代码后序列化输出的JSON结构完全符合你的预期要求。
内容的提问来源于stack exchange,提问作者Justyn
相关产品推荐
相关产品推荐

