Comment sélectionner une cellule de tableau spécifique à l'aide de HTML Agility Pack

html-agility-pack vb.net xpath

Question

Je dois extraire des champs particuliers à partir de cellules dans un tableau HTML. En utilisant Firebug, j'ai pu obtenir le XPath exact pour les cellules dont j'ai besoin (malheureusement, les cellules n'ont pas de balise id). Je pensais pouvoir utiliser DocumentNode.SelectSingleNode et passer par ce chemin, mais cela ne semble pas fonctionner correctement. Qu'est-ce que je fais mal? Ou y a-t-il une meilleure approche à cet égard que la façon dont je le fais? Malheureusement, je n'ai aucune expérience avec XPath, donc cela s'avère plus difficile que prévu. Voici ce que j'ai jusqu'à présent (je sais que le code HTML est particulièrement complexe, mais ce n'est pas sous mon contrôle de changer):

Dim page As New HtmlAgilityPack.HtmlDocument
Dim node As HtmlAgilityPack.HtmlNode
page.LoadHtml(fileContents)
node = page.DocumentNode.SelectSingleNode("/html/body/form/div[6]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]")

Très appréciée.

Réponse acceptée

Firebug a peut-être corrigé des balises HTML cassées. Si vous voulez choisir un nœud HTML, il est recommandé d'utiliser class ou id. Par exemple:

//div[@class='content']//table//tr[1]/td[2]

raccourcissez le chemin et utilisez le sélecteur de classe ou d'identifiant.

si la table a son propre identifiant, vous pouvez utiliser:

//div[@class='content']//table//tr[1]/td[2]

essayez, vous trouverez XPATH est intéressant.




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