3

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

这是问题所在:

我有许多带有“test”类的节点,但我想选择第二个。

如果我做这样的事情:

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

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

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

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

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

多谢你们!

4

1 回答 1

8

正确的代码是

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

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

于 2013-08-13T18:00:30.437 回答