Html Agility Pack:Xamarin Forms平台上没有SelectSingleNode和XPath

html-agility-pack xamarin xamarin.forms xpath

我需要找到一些方法来使用Xpath或Html选择器从html文件中查找对象。

由于Html Agility Pack不支持选择器,我正在尝试使用XPath。

不幸的是,似乎SelectSingleNode(字符串somexpathvalue)在Xamarin Forms上不可用。 HtmlNode不包含它的定义。

我在NuGet中发现我没有安装System.Xml.XPath。当我尝试这样做时,我看到一个错误:

严重级代码描述项目文件行抑制状态错误无法安装包'System.Xml.XPath 4.0.0'。您正在尝试将此软件包安装到以“.NETPortable,Version = v4.5,Profile = Profile111”为目标的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件。有关更多信息,请与软件包作者联系。 0

有没有办法可以在没有System.Xml.Xpath的情况下使用SelectSingleNode?

热门答案

否.Html Agility Pack(HAP)XPath支持依赖于System.Xml.XPath *中提供的.NET XPath实现,而System.Xml.XPath本身没有Xamarin.Forms的版本。

您的选择可能是在相应的平台特定项目中实现依赖于XPath的功能(假设您当前使用可移植的Xamarin.Forms项目方法),或者使用HAP的LINQ API而不是XPath来执行查询。我相信大多数(如果不是全部)查询您可以在XPath中编写可以转换为LINQ。

*)来自HAP作者的回答: https//stackoverflow.com/a/15941723/2998271

**)示例XPath到LINQ转换: HtmlAgilityPack使用Linq for windows phone 8.1平台



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因