Pack d'agilité HTML + noeud sélectionné par son texte intérieur

c#-4.0 html-agility-pack xpath

Question

J'ai appris à utiliser le pack d'agilité html pour trouver des nœuds spécifiques à l'aide de leurs attributs et xpath. Le problème est que je le fais manuellement pour chacun de mes projets (ouverture du site Web html et recherche des nœuds contenant le texte dont j'ai besoin). Est-il possible de sélectionner un seul nœud par son texte interne? Cela faciliterait l'écriture d'un script de mise à jour pour les sites Web dont le schéma de contenu est identique, mais les balises d'attribut changent de valeur au fil du temps. Merci d'avance!

Réponse populaire

Ce serait mieux si vous avez fourni un exemple de code HTML, mais puisque ce n’est pas le cas, supposons que nous ayons du HTML contenant ce balisage:

<body>
    <div class="foo">bar</div>
</body>

Vous pouvez sélectionner le <div> par son attribut en utilisant SelectSingleNode() et XPath de HtmlAgilityPack comme SelectSingleNode() :

myHtmlDocument.DocumentNode.SelectSingleNode("//div[@class='foo']");

ou vous pouvez sélectionner la même chose par le texte intérieur comme ceci:

myHtmlDocument.DocumentNode.SelectSingleNode("//div[.='bar']");

J'espère que cette aide.




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