Sélectionnez un élément par classe - xpath

c# html-agility-pack

Question

Comment puis-je sélectionner un élément par classe / nom en utilisant xpath?

var nodeByClass = doc.DocumentNode.SelectSingleNode("//[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//[@name='element_name']");

J'ai une exception

The expression must be evaluated for a set of nodes.

Réponse populaire

Il vous manque une étape de localisation après le // , car le prédicat seul n'est pas autorisé.

var nodeByClass = doc.DocumentNode.SelectSingleNode("//*[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//*[@name='element_name']");

raccourci pour:

var nodeByClass = doc.DocumentNode.SelectSingleNode("//self::node()[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//self::node()[@name='element_name']");


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