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平台



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow