javascript - HTML 敏捷包忽略
标签
问题描述
我在 C# 中编写了以下代码来检索网页中表格的内容(在获得许可后)。它工作得几乎完美,但一些单元格包含多个像这样的值
_______
| 10 |
| 11 |
| 12 |
|___13__|
但我得到了价值10111213
。
这是一个链接,如果需要进一步清晰的视野,您可以查看表格代码:ttps://ug3.technion.ac.il/rishum/course/104031
WebClient webClient = new WebClient();
string page = webClient.DownloadString("https://ug3.technion.ac.il/rishum/course/104031");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(page);
List<List<string>> table = doc.DocumentNode.SelectSingleNode("//table[@class='rishum-groups']")
.Descendants("tr")
.Skip(1)
.Where(tr => tr.Elements("td").Count() > 1)
.Select(tr => tr.Elements("td").Select(td => td.InnerText.Trim()).ToList())
.ToList();
解决方案
该InnerText
属性将删除所有元素,只留下文本。如果要保留<br>
元素,则应InnerHtml
改为使用。这是一个例子:
var table = doc.DocumentNode.SelectSingleNode("//table[@class='rishum-groups']")
.Descendants("tr")
.Skip(1)
.Where(tr => tr.Elements("td").Count() > 1)
.Select(tr => tr.Elements("td").Select(td => td.InnerHTML.Trim()).ToList())
.ToList();
如果需要解析这些值,可以使用Split()
字符串上的方法。这是一个例子:
var myValues = myTextField.Split(new string[] { "<br>" }, StringSplitOptions.None);
推荐阅读
- codeigniter - Codeigniter 生成文本视图
- apache - apache2.service:无法运行“启动”任务:没有这样的文件或目录
- php - 删除任何以特定字符串开头的行?
- c# - 如何将布尔数组绑定到 WPF 中矩形网格的可见性属性?
- java - 您如何以编程方式从片段内部设置 ViewPager 选项卡?
- aspnetboilerplate - 具有多种实现的通用应用服务接口
- c - 为什么堆栈顶部是重置后从向量表中加载的第一个值?
- python-3.x - 一帧中的多种形式npyscreen
- markdown - 如何在 Markdown 正文上添加 domain.com 而不将其转换为链接?
- java - AWT 令牌生成类似令牌