获取具有相同类的第二个节点

时间:2013-08-13 17:51:29

标签: c# html-agility-pack

我在使用HtmlAgilityPack解析某些节点时遇到了一些麻烦。

问题在于:

我有很多节点和#34;测试",但我想要选择第二个。

如果我做这样的事情:

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=1]")

它返回我期望的值...但是如果我尝试获取第二个它返回null ...但问题是..为什么?

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=2]")

这行代码给我带来了所有这些,我现在真的很困惑,因为使用position()= 1,lib必须只返回第一个,对吧?

html.DocumentNode.SelectNodes ("//font[@class='test' and position()=1]")

谢谢你们!

1 个答案:

答案 0 :(得分:8)

正确的代码是

html.DocumentNode.SelectSingleNode ("(//font[@class='test'])[2]")

您使用的代码选择其父元素中的第一个或第二个测试元素,而不是类font的所有test元素序列中的第一个或第二个元素。