0
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
string html = null;
html =
"<body> " +
"<p class=\"hang12\">“What is Lorem Ipsum?” <i>Lorem Ipsum is simply dummy text</i> Lorem Ipsum has been the</p>" +
"<p class=\"hang12\">when an unknown printer took a galley of type <i>It has survived not only five centuries,</i>.</p>" +
"<p class=\"hang12\">but also the <i>remaining essentially </i> </p>" +
"<p class=\"hang12\">with the release of Letraset sheets containing Lorem Ipsum passages, <i>and more recently with desktop</i>. 1944.</p>" +
"</body>";
doc.LoadHtml(html);
foreach (var item in doc.DocumentNode.Descendants())
{
chNodes(item);
}
public void chNodes(HtmlAgilityPack.HtmlNode node)
{
try
{
if (node.HasChildNodes)
{
foreach (var item in node.ChildNodes)
{
chNodes(item);
}
}
else
{
Console.WriteLine("************");
Console.WriteLine(node.Line);
Console.WriteLine(node.LinePosition);
Console.WriteLine("************");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
throw ex;
}
}
Mon code ci-dessus obtient la première position de l'étiquette d'ouverture trouvée. Mais je ne peux pas obtenir la position de l'étiquette de fermeture. Comment puis-je le résoudre? J'ai besoin de ces valeurs pour mettre en évidence le texte dans le contrôle webbrowser. Je vous remercie.Comment obtenir l'étiquette et son texte en utilisant htmlagility
Essayez de faire quelque chose comme Console.WriteLine (node.LinePosition + node.OuterHtml.Length - node.Name.Length - 3) ;, vous devrez peut-être ajuster la valeur 3 à quelque chose d'autre pour arriver à la position exacte et je crois que cela devrait fonctionner pour tous les nœuds qui ont la balise de fermeture – Sujith
Merci je ne savais pas qu'une solution comme ça fonctionnerait –
ça marche ou pas? – Sujith