2011-05-19 8 views
45

J'essaie d'analyser le fichier HTML suivant, je voudrais obtenir la valeur de la clé. Ceci est fait sur Silverlight pour Windows Phone.Analyse HTML avec C# .net

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

une idée est où aller d'ici?

merci

+1

Je viens d'ajouter une question au site [Steu Exchange] de [[Software Recommendations] (http://softwarerecs.stackexchange.com/) pour cela - [Bibliothèque C# pour analyser le HTML? - Stack Exchange des recommandations logicielles] (http://softwarerecs.stackexchange.com/questions/10773/c-library-for-parsing-html/10774#10774). –

Répondre

66

Donnez une apparence à HTMLAgilityPack. Son un analyseur HTML assez décent

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

de ======

Voici un code pour vous aider à démarrer (nécessite le contrôle d'erreur)

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 J'ai déjà utilisé cet outil et c'est génial. – pixelbobby

+0

Nous faisons beaucoup de grattage en utilisant le pack Agility et ça bouge. Essayez-le définitivement. – Pat

+1

Je ne pense pas que vous pouvez utiliser le pack d'agilité pour Windows Phone. – Nathan

0

Vous pouvez utiliser des expressions régulières (Regex class) pour cela. L'expression peut être quelque chose comme ça: login.html\?key=[^"]*

+4

Je ne vais pas downvote parce que je suis gentil mais RegEx n'est pas un moyen sûr de faire cela, plutôt HTMLAgilityPack est assez standard de nos jours. – pixelbobby

+11

-1 (malheureusement, je suis juste - rien à voir avec * gentil * - et cette information vous aidera aussi à ne pas essayer d'analyser HTML en utilisant RexEx) http://stackoverflow.com/questions/1732348/ regex-match-open-tags-sauf-xhtml-self-contained-tags/1732454 # 1732454 –

+2

Regex peut fonctionner mais je suggère fortement le contraire, pour l'avenir. – Pat