HtmlAgilityPack的替代品?

mpe*_*pen 16 c# html-agility-pack

我不喜欢HtmlAgilityPack中的一些设计决策:

  • 使用时SelectNodes,如果没有找到节点,则返回null而不是空集,因此如果foreach没有空检查,则不能只是它.
  • 当试图用node.SelectNodes它来选择子项时,实际上是从文档根目录中搜索,除非你使用descendant::哪个不是明显的,也不是预期的行为,IMO.
  • HtmlDocument.Load 不会返回根节点,我认为这是99%的时间

当然,你可能不同意这一点,但那不是重点.我正在寻找不同的东西.表现得更加预期的东西,或使用jQuery语法的东西会更好.建议?

aci*_*ian 2

如果您只是解析 html,另一个选择可能是 SgmlReader。如果你要修改 html,则不需要那么多。不记得它对您提出的问题的表现如何,但值得检查一下。

  • 它将其转换为 XmlDocument 形式的有效 xml。然后,您可以调用 XmlDocument.CreateNavigator() 重载之一来获取 XPathNavigator 对象来执行 xpath 查询。 (4认同)