peut être utilisé par HTML Agility Pack pour analyser un fragment de chaîne HTML?
tel que: p> puis extraire tout code> code> Mots clés? Tous les exemples que j'ai vu jusqu'à présent ont été chargés comme des documents HTML. P> P>
3 Réponses :
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;
Ok alors que ferais-je en faire avec comment puis-je faire une analyse?
HMM Merci mais j'ai copié et collé ce code dans une application de console et l'agilité HTML importée, mais sur la ligne HTMLNode, je reçois une exception de référence NULL.
Peut-être que c'est htmlnode bnode = doc.documentnode.selectSingLenode ("/ B [1]");
Essayez htmlnode bnode = doc.documentnode.selectSingLenode ("// b [1]");
Je ne pense pas que ce soit vraiment la meilleure utilisation de HTMLagilityPack. p>
Normalement, je vois des gens essayant d'analyser de grandes quantités de HTML à l'aide d'expressions régulières et que je les pointe vers HTMLagILityPack, mais dans ce cas, je pense qu'il serait préférable d'utiliser une regex. P>
Roy Osherove a une publication de blogs décrivant comment vous pouvez supprimer tout le HTML à partir d'un extrait: P>
Même si vous avez obtenu le bon xpath avec l'échantillon de Mika Kolari, cela ne fonctionnerait que pour un extrait avec une étiquette et casserait si le code a changé. p>
Cette réponse est venue lorsque je cherchais la même chose. Je ne sais pas si les fonctionnalités ont changé depuis sa réponse, mais cela ci-dessous devrait être mieux.
Il pourrait être fait même simulateur avec HAP, dans une ligne:
var text = htmlnode.createnode (" Certains code b>"). Innertext; Code>