Pack d'agilité pour les tables imbriquées HTML xpath valide

html html-agility-pack xpath

Question

En supposant que les tables imbriquées n’ont pas d’attributs uniques (id, classe ou quoi que ce soit d’autre) pour obtenir l’objet requis via

doc.DocumentNode.SelectSingleNode("//table[@width='500']")

Est-ce que XPath interdit d'utiliser la table plusieurs fois dans son chemin?

foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table/tr/center/table"))

lève une exception lorsque SelectNodes renvoie null.

Si c'est le cas, comment traiter l'analyse HTML avec des tables imbriquées sans attributs spécifiques avec Agility Pack?

Réponse acceptée

Je viens de manquer la balise "td" sur mon chemin. Alors

foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table/tr/td/center/table/tr/td/center/table"))

ça marche. Cela répond effectivement à ma question. Autre solution de contournement pour obtenir la même table en supposant que les éléments parent contiennent des valeurs d'attributs uniques

HtmlNode tbl = doc.DocumentNode.SelectSingleNode("//td[@height='643']/center/table");


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow