2012-07-09 84 views
2

范围 我想解析this page。对于不熟悉葡萄牙语的人,此页面包含某个课程(大学课程)中的所有主题,按“学期”分组。HTMLAgilityPack XPath表达式不提取所有节点

因此,每当您看到类似于“7ºPeríodoIdeal”的内容时,您可以理解为“第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不检索此节点之后的所有节点?

是否有任何检索节点数量的上限? 我错过了什么?

在此先感谢

+0

你可以将它缩小到最小的html文档,但仍然可以重现问题,然后将该文档添加到问题的文本中?该链接可能会有所帮助,但如果该链接不再有效,那么对于堆栈溢出的访问者来说,这对今后几年的访问者来说并不会有什么好处。 – 2012-07-09 17:45:22

+0

HTML很大=/ 我可能会将它发布到pastebin – 2012-07-09 17:46:09

+0

您不能将它缩小为仍然存在问题的较小样本吗? – 2012-07-09 17:47:26

回答

3

我在过去遇到这样的,如果表中没有得到很好的形成,然后再像这样出现的问题。我花了一个很快的页面的HTML看看,看到什么看起来像一个可能的问题,在2785行有</tr>然后没有开幕<tr>行2796有另一个</tr>

我承认我没有做深入验证检查,但只是看着它我无法匹配开头<tr>。我立即检查了这一点,因为正如我所提到的,我遇到了具有格式不正确的页面的确切问题。

+0

谢谢Mr McGver – 2012-07-09 17:55:35

+0

很高兴。 – 2012-07-09 17:58:51

相关问题