AngleSharp 文档中的一些说法

The Html Agility Pack (HAP) is a good comparison target, since it is most used and established since a long time. Obviously AngleSharp is a great replacement for HAP due to the following reasons:
Standardized HTML5 parsing model
Much better error correction / handling
Also parses SVG / MathML elements correctly
Can handle CSS (selectors, rules, ...)
Better performance

我来说一些我实际中遇到的一些细节差异

htmlagilitypack 可以直接让它去 load stream 它会自动按照 ASCII 的规则去读取 <meta charSet="xxx">标签然后按正确的编码读取,anglesharp 我记得好像没这个功能,不过我也不敢确定,因为这方面我没用过,我一般都是拿 github.com/errepi/ude 检测编码然后直接让各种 parser 去 load string,而不是用这些parser自带的编码检测。

htmlagilitypack 历史包袱很重,搞了一堆 flag 可以调整,我不是特别喜欢这些,感觉不是很透明。

AngleSharp 是完全按照标准来的,可以玩 xpath 也可以,htmlagilitypack 就只能 xpath 了。AngleSharp 甚至还可以用 jint 还可以拿来跑网页的 JavaScript(没搞过), 顺便吐槽一下我给jint提交的PR万年没人理。(划掉)

AngleSharp 如果再加上 Win2D 做一个简单的 HTML 文本显示,那么就可以用 anglesharp.css 去读取html element的style。不过如果你一个元素都去 ComputeCurrentStyle 的话,性能也确实不咋地。这方面我做了个小小的优化,有兴趣可以看看这个 yinyue200/AngleSharp.Css

AngleSharp 如果遇到不认识的标签不会认为标签是可以默认自闭合的,同时像title这样的标签也被 AngleSharp 被认为是不能自闭合。这也和目前的标准以及主流浏览器的实践相一致,但是和 htmlagilitypack 的处理方式是不一致的。如果有这方面的迁移需求的话我觉得需要注意这点。还有就是大小写处理方面二者略有不同,稍微注意一下即可。

相关文章:

  • 2021-11-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2021-07-19
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-14
  • 2021-10-29
  • 2021-11-07
  • 2022-02-08
  • 2022-01-30
  • 2021-11-14
相关资源
相似解决方案