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

c# html-agility-pack

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

这是问题所在:

我有许多节点与“测试”类,但我想选择第二个节点。

如果我做这样的事情:

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]")

多谢你们!

一般承认的答案

正确的代码将是

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

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



Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow