HTML Agility Pack récupère tous les champs de saisie

c# html-agility-pack

Question

J'ai trouvé du code sur Internet qui trouve toutes les balises href et les remplace par google.com, mais comment puis-je indiquer au code de rechercher tous les champs de input et d'y insérer du texte personnalisé?

C'est le code que j'ai en ce moment:

HtmlDocument doc = new HtmlDocument();
doc.Load(path);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
    HtmlAttribute att = link.Attributes["href"];
    att.Value = "http://www.google.com";
}
doc.Save("file.htm");

S'il vous plaît, quelqu'un peut m'aider, je ne semble pas pouvoir trouver aucune information à ce sujet sur Internet :(.

Réponse acceptée

Définissez le sélecteur XPath sur //input pour sélectionner tous les nœuds d'entrée:

foreach (HtmlNode input in doc.DocumentNode.SelectNodes("//input"))
{
    HtmlAttribute att = input.Attributes["value"];
    att.Value = "some text";
}

Réponse populaire

Votre code actuel sélectionné tous a des éléments (qui ont un href attribut): "//a[@href]" .

Vous voulez qu'il sélectionne tous input éléments d' input : "//input" .

Bien entendu, la partie interne de la boucle devra être modifiée pour correspondre à ce que vous recherchez.

Je vous suggère de lire sur XPath .



Related

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