我在使用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]")
谢谢你们!
答案 0 :(得分:8)
正确的代码是
html.DocumentNode.SelectSingleNode ("(//font[@class='test'])[2]")
您使用的代码选择其父元素中的第一个或第二个测试元素,而不是类font
的所有test
元素序列中的第一个或第二个元素。