Yuki Kutsuya
Yuki Kutsuya

Reputation: 4088

HTML Agility Pack get all input fields

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 :(.

Upvotes: 4

Views: 7260

Answers (2)

Erwin
Erwin

Reputation: 4817

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

Upvotes: 6

Oded
Oded

Reputation: 499182

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.

Upvotes: 2

Related Questions