Pack d'agilité HTML

.net c# html-agility-pack html-parsing winforms

Question

Je veux analyser la table html en utilisant le pack d'agilité html. Je souhaite extraire uniquement certaines données de colonne prédéfinies de la table.

Mais je suis novice dans l'analyse et le pack d'agilité HTML et j'ai essayé, mais je ne sais pas comment utiliser le pack d'agilité HTML pour mon besoin.

Si quelqu'un sait, donnez-moi un exemple si possible

MODIFIER :

Est-il possible d'analyser la table html comme si nous voulions extraire uniquement les données des noms de colonnes décidés? Comme il y a 4 colonnes nom, adresse, phno et je veux extraire uniquement les données de nom et d’adresse.

Réponse acceptée

Il existe un exemple de cela dans les forums de discussion ici . Faites défiler un peu pour voir le tableau répondre. Je souhaite qu'ils fournissent de meilleurs échantillons plus faciles à trouver.

EDIT: pour extraire des données de colonnes spécifiques, vous devez d’abord rechercher les balises <th> correspondant aux colonnes souhaitées et mémoriser leurs index. Vous devez ensuite rechercher les balises <td> pour les mêmes index. En supposant que vous connaissiez les index des colonnes, vous pourriez faire quelque chose comme ceci:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("http://somewhere.com");
HtmlNode table = doc.DocumentNode.SelectSingleNode("//table");
foreach (var row in table.SelectNodes("//tr"))
{
    HtmlNode addressNode = row.SelectSingleNode("td[2]");
    //do something with address here
    HtmlNode phoneNode = row.SelectSingleNode("td[5]");
    // do something with phone here
}

Edit2: Si vous ne connaissez pas les index des colonnes, vous pouvez tout faire comme ceci. Je n'ai pas testé cela.

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("http://somewhere.com");
HtmlNode table = doc.DocumentNode.SelectSingleNode("//table");
foreach (var row in table.SelectNodes("//tr"))
{
    HtmlNode addressNode = row.SelectSingleNode("td[2]");
    //do something with address here
    HtmlNode phoneNode = row.SelectSingleNode("td[5]");
    // do something with phone here
}



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi