Mon HTML ressemble à ceci:
<div id="footer">
<div id="footertext">
<p>
Copyright © FUCHS Online Ltd, 2013. All Rights Reserved.
</p>
</div>
</div>
J'aimerais obtenir ce texte à partir du balisage et le stocker en tant que chaîne dans mon code C #: "Copyright © FUCHS Online Ltd, 2013. Tous droits".
C'est ce que j'ai essayé:
public string getvalue()
{
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("www.fuchsonline.com");
var link = doc.DocumentNode.SelectNodes("//div[@id='footertext']");
return link.ToString();
}
Cela retourne un objet de type "HtmlAgilityPack.HtmlNodeCollection". Comment puis-je obtenir juste cette valeur de texte?
Vous avez besoin de la valeur d'un noeud. Par conséquent, il est préférable d'utiliser la méthode SelectSingleNode
.
HtmlWeb web = new HtmlWeb();
var doc = web.Load("http://www.fuchsonline.com");
var link = doc.DocumentNode.SelectSingleNode("//div[@id='footertext']/p");
string rawText = link.InnerText.Trim();
string decodedText = HttpUtility.HtmlDecode(text); // or WebUtility
return decodedText;
Vous devrez peut-être aussi décoder l'entité html ©
.