2013-11-21 48 views
1

我已經下載了一個網頁的源代碼,並且我想要將HTML文本解析並轉換爲類似HtmlDocument對象或接口,以便我可以訪問其中的HTML元素。如何解析Windows應用商店中的HTML?

我在網上做了一些搜索。它似乎除了使用HtmlAgilityPack庫,唯一可行的方法是創建一個WebView並調用它的NavigateToString()方法。我不想使用第三方庫,所以我嘗試了第二種解決方案。我已經調用了該方法,但我不知道在哪裏檢索文件或類似的文件。

所以我的問題是:如何從WebView中檢索HtmlDocument?或者有沒有更好的解決方案來做到這一點?

+0

爲什麼你不想使用第三方庫?它們通常是啓動和運行功能的最簡單方式,特別是對於默認情況下不能很好提供的功能。 –

+0

原因很簡單:有時,第三方庫的引入意味着額外的關注:健壯性,性能,版本控制,可移植性等。我一直試圖保持我的代碼基礎儘可能簡單。所以原則上我必須比第三方更喜歡本地解決方案,如果有的話。沒有惡意!感謝您的快速評論! – SimonFisher

+0

沒有冒犯不要擔心。我只問,因爲有些人似乎對第三方組件有不合邏輯的恐懼,這往往會導致浪費時間和精力。實際的軟件開發就是建立在其他人的工作上,以達到更高的高度。 –

回答

4

正如Todd Bowles在上述評論中指出的那樣,如果存在第三方解決方案,使用它可以節省您寶貴的時間和精力。

HTML Agility Pack的替代品雖然仍處於相當早期的階段,但仍爲AngleSharp。它可以解析各種基於括號的超文本,特別是HTML和CSS,並且它會生成一個解析超文本的HTML5 DOM表示。目前HTML5解析器據稱已完成95%,但希望這對定期使用的影響有限。

AngleSharp作爲一個便攜式類庫(PCL)實現的,如果我是正確的,它的目標Windows應用商店的應用程序.NET框架4高,的Windows Phone 7高,如以及Silverlight 4及更高版本。

+0

95%是一個防守估計。大多數測試(目前大約1600)處理HTML(5)(邊緣)情況。如果AngleSharp不能正確解析它,那麼HAP或其他解決方案也不會以正確的方式解析它。 –