HTML Agility Pack obtiene todos los campos de entrada

c# html-agility-pack

Pregunta

Encontré un código en Internet que encuentra todas las etiquetas href y las cambia a google.com, pero ¿cómo puedo decirle al código que busque todos los campos de input y poner texto personalizado allí?

Este es el código que tengo ahora:

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

Por favor, ¿puede alguien ayudarme? Parece que no puedo encontrar ninguna información sobre esto en Internet :(.

Respuesta aceptada

Cambie el selector de XPath a //input para seleccionar todos los nodos de entrada:

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

Respuesta popular

Su código actual seleccionado todos a elementos (que tienen un href atributo): "//a[@href]" .

Desea que seleccione todos input elementos de input : "//input" .

Por supuesto, la parte interior del bucle tendrá que cambiar para que coincida con lo que está buscando.

Le sugiero que lea sobre XPath .



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow