【发布时间】:2012-07-09 17:37:23
【问题描述】:
范围 我正在尝试解析this page。对于不熟悉葡萄牙语的人,此页面包含某个课程(大学课程)的所有科目,按“学期”分组。
所以,每次看到“7º Período Ideal”这样的内容时,您都可以理解为“Subjects 从第 7 学期开始”。
问题我正在使用 XPath 表达式从包含这些表行的表中获取所有表行。
XPath Used : //table[@cellspacing=2]//tr
C# Statement : htmlMap.DocumentNode.SelectNodes("//table[@cellspacing=2]//tr");
此 C# 语句收到的 HtmlNodeCollection 仅包含表行节点,直到带有此文本 EAD0648 Gerência de Produtos / Serviços e Mercados 的那个,紧接着带有 5º Período Ideal 的那个。
这个 XPath “有效”,但我得到了所有的 tr's(正如预期的那样),这不是我想要的。
//tr
为什么 XPath 没有检索该节点之后的所有节点?
检索到的节点数量是否有上限? 我错过了什么吗?
提前致谢
【问题讨论】:
-
您能否将其缩减为仍能重现问题的最小 html 文档,然后将该文档添加到您的问题文本中?该链接可能会有所帮助,但如果该链接不再有效,它将不会对 Stack Overflow 多年后的访问者有太大帮助。
-
HTML 很大 =/ 我可能会将其发布到 pastebin
-
您不能将其减少到仍然存在问题的较小样本吗?
-
最短的,会导致700多行的复制粘贴
-
我没有深入研究它,但在 EAD0648 行之后不久,它的子行具有结束 TR 标签,但似乎没有打开 TR 标签,这似乎很奇怪。
标签: c# html-agility-pack