【问题标题】:Get the second node with same class获取具有相同类的第二个节点
【发布时间】:2013-08-13 17:51:28
【问题描述】:

我在使用 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]")

谢谢大家!

【问题讨论】:

  • position()font元素的父元素内的位置,而不是text类的所有字体元素的序列中的位置!
  • 谢谢弗兰克!不再困惑了xD

标签: c# html-agility-pack


【解决方案1】:

正确的代码是

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2019-08-06
    • 1970-01-01
    相关资源
    最近更新 更多