首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不依赖.NET的情况下使用HtmlAgilityPack?

如何在不依赖.NET的情况下使用HtmlAgilityPack?
EN

Stack Overflow用户
提问于 2015-04-04 11:51:59
回答 1查看 784关注 0票数 0

Fizzler是一个W3C选择器库,用于HTML。Nuget提供两个版本:一个依赖HtmlAgilityPack,一个不依赖HtmlAgilityPack。

我只能找到依赖于HtmlAgilityPack的项目的文档和示例代码。我想利用不具有这种依赖性的依赖,因为我总是希望减少依赖并保持简单。

在哪里可以找到不依赖于HtmlAgilityPack的Fizzler项目的文档/示例代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-05 13:32:54

了解Fizzler的设计、设置和依赖关系时,最重要的是要认识到,CSS选择器规范本身是按照文档树中的元素绑定模式来描述的。所引用的大多数示例都是HTML文档树中的元素,这是CSS选择器形成CSS的核心部分的副产品,所有这些技术在网页的呈现中结合在一起。这是最常见的应用程序。但是,如果您使用元素和属性(和名称空间)模型将CSS选择器作为对任意文档系统的查询机制,那么它可以应用于web页面域之外。独立或基本版本的萤火虫正是这样做的。它包含通用位。然后,Fizzler.Systems.HtmlAgilityPack是在一个具体库HtmlAgilityPack的API和HTML树模型之上的泛型位的具体实现。

这种分离使任何人都可以使用Fizzler在另一个库(如果另一个库变得更流行/更流行时)或文档树上实现CSS选择器,因为您可以重用CSS选择器语法解析器和与HtmlAgilityPack无关的通用选择框架。

作为Fizzler的最初作者之一,我为HtmlAgilityPack提供了具体的实现,它是.NET框架中最流行的HTML解析器和DOM库(可能至今仍是如此)。我曾经/现在希望社区能够使用核心库为其他HTML库和文档系统提供实现。

您可以说,HTML之外的CSS选择器的实用程序纯粹是学术性的,但是萤火虫回购确实包含了一种WinForms的实现,尽管这是我的实验,但它很好地说明了CSS选择器可以很好地用于根据表单的名称(映射为ID)和属性(映射为属性)来选择控件。您可以想象为WinForms控件应用类似CSS的样式化语言,并使用CSS选择器来定义应用于哪些控件的样式。

Fizzler的体系结构和设计是您找不到任何纯粹使用核心库的文档或示例的原因。对于那些希望在应用程序中立即和实际使用的人来说,它可能过于通用了。对于那些希望在其他库和元素树之上实现CSS选择的人来说,文档和示例将是最有意义的。虽然这可能缺乏书面英语形式,但我希望Fizzler.Systems.HtmlAgilityPack (以及其他一些)能作为一个好的简单的学习(其核心可以归结为少于200行代码)。

Fizzler.Systems.HtmlAgilityPack本身是通过使用两个标准来记录的: CSS选择器和选择器API。后者从QuerySelector中为HtmlNode添加了HtmlNodeQuerySelectorAll,就像您在浏览器中看到的那样。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29446069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档