2010-03-29 5 views
6

Je n'ai trouvé aucun tutoriel sur leur site. Je me demande si je peux utiliser Html Agility Pack et l'utiliser pour analyser une chaîne?Puis-je utiliser Html Agility Pack pour cela?

Comme dire que j'ai

string = "<b>Some code </b> 

pourrais-je utiliser le pack d'agilité pour se débarrasser des <b> balises? Tous les exemples que j'ai vus jusqu'à présent ont été chargés comme des documents html.

+0

exemple ajouté ... –

+1

Il pourrait être fait même simlier avec PAH, en une ligne: 'texte var = HtmlNode.CreateNode ("Une partie du code") .InnerText;' – Alex

Répondre

8

Si c'est html alors oui.

string str = "<b>Some code</b>"; 
// not sure if needed 
string html = string.Format("<html><head></head><body>{0}</body></html>", str); 
HtmlDocument doc = new HtmlDocument(); 
doc.LoadHtml(html); 

// look xpath tutorials for how to select elements 
// select 1st <b> element 
HtmlNode bNode = doc.DocumentNode.SelectSingleNode("b[1]"); 
string boldText = bNode.InnerText; 
+0

Ok alors que ferais-je avec elle comment ferais-je un peu d'analyse? – chobo2

+0

Hmm merci, mais j'ai copié et collé ce code dans une application de la console et importé l'agilité html de retour, mais sur la ligne HtmlNode, je reçois une exception de référence nulle. – chobo2

+0

Peut-être que c'est HtmlNode bNode = doc.DocumentNode.SelectSingleNode ("/ b [1]"); –

2

Je ne pense pas que ce soit vraiment la meilleure utilisation de HtmlAgilityPack.

Normalement, je vois des gens qui essaient d'analyser de grandes quantités de html en utilisant des expressions régulières et je les pointe vers HtmlAgilityPack mais dans ce cas je pense qu'il serait préférable d'utiliser une regex.

Roy Osherove a un billet de blog décrivant comment vous pouvez dépouiller tous les fichiers HTML à partir d'un extrait:

Même si vous avez reçu la XPath correcte avec l'échantillon de Mika Kolari cela ne fonctionne que pour un fragment contenant une balise <b> et se casserait si le code était modifié.

Questions connexes