首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有HtmlAgilityPack的HTML,或在PCL中的替代

带有HtmlAgilityPack的HTML,或在PCL中的替代
EN

Stack Overflow用户
提问于 2013-03-11 14:59:26
回答 3查看 3.3K关注 0票数 22

我已经在.NET 4上写了一个项目,目前正在允许它在Windows上运行。我使用的是HtmlAgilityPack,这是一个众所周知的库,它允许在HTML上查询Linq,并且只使用它提供的LoadHtml和Linq接口。

在将类库从.NET 4转换为PCL (便携式类库)并支持.NET 4和WP8之后,我似乎不再使用HtmlAgilityPack库了。是否有一种允许HtmlAgilityPack在PCL项目下正确工作的方法,或者是否有一个具有类似Linq接口的变量可供选择,并按预期工作?

编辑:HtmlAgilityPack提供了9个不同的版本,其中没有一个与PCL兼容。它们中没有一个解析引用中的依赖项。对于某些版本,可能会出现这样的情况,但在使用时会抛出一个错误,通常的“无法加载,未解决的依赖项”。

编辑#2因为很容易错过一个小评论,我将用我想出的解决方案来更新这个答案。我提取了基本功能所需的内容,并实现了缺少的组件,以使一切正常工作。结果是在这里https://github.com/Deathspike/HtmlAgilityPack-PCL

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-11 21:12:57

你已经问过并回答了你自己的问题-不是吗?

HtmlAgilityPack不支持与便携式类库一起使用。

充其量,您将需要查看移植/迁移所需的特定功能的方式,以便在您正在使用的平台上工作。

票数 4
EN

Stack Overflow用户

发布于 2013-03-12 00:19:58

一种选择是将HTML敏捷包源代码移植到PCL。您可以通过运行PCL符合性分析仪来了解这将有多难。

或者,使用抽象模式。为您需要的功能创建一个可移植的接口(即LoadHtmlLinq),然后通过调用HTML为每个平台实现该接口。然后,您的可移植代码可以依赖于特定于平台的实现。

有关更多信息,请参见以下博客文章:如何使便携式类库为您工作

票数 5
EN

Stack Overflow用户

发布于 2013-03-12 12:01:18

看看HtmlParserSharp,这是validator.nu HTML5解析器的一个C#端口。该项目应该非常容易构建为一个PCL库,因为它或多或少是一个直接的C++端口,并且只使用最基本的.NET框架类,并进行了一些更新以提高C#的性能。

虽然我在HtmlParserSharp中所做的大部分工作都是为CsQuery做的,而CsQuery本身离PCL兼容还有很长的路要走,但HtmlParserSharp作为一个精益的HTML解析器,完全没有理由让它自己工作得很好。该项目包括一个基于XmlElement构建DOM的示例,但是树构建器是一个抽象,因此您可以轻松地将其更改为使用自己的树节点对象。

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

https://stackoverflow.com/questions/15341774

复制
相关文章

相似问题

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