4

I found some code on the internet that finds all the href tags and changes them to google.com, but how can I tell the code to find all the input fields and put custom text in there?

This is the code I have right now:

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");

Please, can someone help me, I can't seem to find any information about this on the internet :(.

Erwin
  • 4,757
  • 3
  • 31
  • 41
Yuki Kutsuya
  • 3,968
  • 11
  • 46
  • 63

2 Answers2

6

Change the XPath selector to //input to select all the input nodes:

foreach (HtmlNode input in doc.DocumentNode.SelectNodes("//input"))
{
    HtmlAttribute att = input.Attributes["value"];
    att.Value = "some text";
}
Erwin
  • 4,757
  • 3
  • 31
  • 41
2

Your current code selected all a elements (that have a href attribute): "//a[@href]".

You want it to select all input elements: "//input".

Of course, the inner part of the loop will need to change to match what you are looking for.

I suggest you read up on XPath.

Oded
  • 489,969
  • 99
  • 883
  • 1,009