2011-05-19 60 views
45

我想解析下面的HTML文件,我想得到key的值。這是在Silverlight for Windows手機上完成的。用c#.net解析HTML

<HTML> 
<link ref="shortcut icon" href="favicon.ico"> 
<BODY> 
<script Language="JavaScript"> 
location.href="login.html?key=UEFu1EIsgGTgAV7guTRhsgrTQU28TImSZkYhPMLj7BChpBkvlCO11aJU2Alj4jc5" 
</script> 
<CENTER><a href="login.html?key=UEFu1EIsgGTgAV7guTRhsgrTQU28TImSZkYhPMLj7BChpBkvlCO11aJU2Alj4jc5">Welcome</a></CENTER></BODY></HTML> 

任何想法是從哪裏去的?

謝謝

+1

我剛剛添加了一個問題到[軟件推薦](http://softwarerecs.stackexchange.com/)堆棧交換網站爲此 - [C#庫解析HTML? - Software Recommendations Stack Exchange](http://softwarerecs.stackexchange.com/questions/10773/c-library-for-parsing-html/10774#10774)。 – 2014-08-15 23:30:14

回答

66

給HTMLAgilityPack看看。它是一種相當不錯的HTML解析器

http://html-agility-pack.net/?z=codeplex

======

這裏有讓你開始一些代碼(需要錯誤檢查)

HtmlDocument document = new HtmlDocument(); 
string htmlString = "<html>blabla</html>"; 
document.LoadHtml(htmlString); 
HtmlNodeCollection collection = document.DocumentNode.SelectNodes("//a"); 
foreach (HtmlNode link in collection) 
{ 
    string target = link.Attributes["href"].Value; 
} 
+1

+1我之前使用過這個工具,非常棒。 – pixelbobby 2011-05-19 18:32:46

+0

使用敏捷包進行了很多刮擦,並且它晃動。絕對要試試這個。 – Pat 2011-05-19 18:37:32

+1

我不認爲你可以使用windows phone的敏捷包。 – Nathan 2011-05-19 19:03:15

0

您可以使用正則表達式( Regex class)。表達式可以是這樣的:login.html\?key=[^"]*

+4

我不會暈倒,因爲我很好,但RegEx並不是一個可靠的方法來做到這一點,而是現在HTMLAgilityPack幾乎是金標準。 – pixelbobby 2011-05-19 18:32:26

+11

-1(不幸的是,我很公平 - 與*很好*無關 - 而且這個信息也會幫助你,不要嘗試用RexEx來解析HTML)http://stackoverflow.com/questions/1732348/正則表達式可以工作,但我強烈建議,否則,爲未來。除了xhtml自包含標籤/ 1732454#1732454 – 2011-05-19 18:33:01

+2

正則表達式可能工作,但我強烈建議,否則,爲未來。 – Pat 2011-05-19 18:37:01