J'ai une application console qui analyse des documents HTML via la méthode WebRequest (http). Le problème est vraiment d'extraire des données du code html qui est retourné.C# extraction de certaines parties d'une chaîne
Ci-dessous est un fragment du html Je suis intéressé par:
<span class="header">Number of People:</span>
<span class="peopleCount">1001</span> <!-- this is the line we are interested in! -->
<span class="footer">As of June 2009.</span>
On suppose que le code html ci-dessus est contenu dans une chaîne appelée « responseHTML ». Je voudrais simplement extraire la valeur "People Count" (deuxième ligne).
J'ai cherché pile sur les flux et trouvé un code qui pourrait fonctionner:
How do I extract text that lies between parentheses (round brackets)?
Mais quand je mets en œuvre, il ne fonctionne pas - je ne pense pas qu'il aime la façon dont je ont placé des balises HTML dans le regex:
string responseHtml; // this is already filled with html code above ^^
string insideBrackets = null;
Regex regex = new Regex("\\<span class=\"peopleCount\">?<TextInsideBrackets>\\w+\\</span>");
Match match = regex.Match(responseHtml);
if (match.Success)
{
insideBrackets = match.Groups["TextInsideBrackets"].Value;
Console.WriteLine(insideBrackets);
}
ci-dessus ne fonctionne pas juste, est-il quelque chose à voir avec les supports de portée html? Tout ce que je veux, c'est la valeur du texte entre les balises pour cette durée spécifique.
Merci d'avance!
Fantastique !! ça a marché! Je vous remercie! – Dal
Heureux que ça a marché! Juste une note, vous pouvez (et devriez) réutiliser l'instance regex si vous voulez le faire plusieurs fois, même à travers plusieurs threads. Regex sont threadsafe et cette perticular obtient un traitement spécial en raison de l'argument RegexOptions.Compiled. À la votre –