獲取具有相同類的第二個節點

c# html-agility-pack

我在使用HtmlAgilityPack解析某些節點時遇到了一些麻煩。

這是問題所在:

我有許多節點與“測試”類,但我想選擇第二個節點。

如果我做這樣的事情:

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

它返回我期望的值...但如果我嘗試獲取第二個它返回null ...但問題是..為什麼?

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

這行代碼給我帶來了所有這些,現在我真的很困惑,因為使用position()= 1,lib必須只返回第一個,對吧?

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

多謝你們!

一般承認的答案

正確的代碼將是

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

您使用的代碼選擇其父元素中的第一個或第二個測試元素,而不是類test的所有font元素序列中的第一個或第二個元素。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因