Usando el paquete Htmlagility obteniendo valores de atributos

c# html-agility-pack html-parsing

Pregunta

Usando Htmlagilitypack puedo obtener el valor de atributo para una etiqueta usando el siguiente código:

public string parseinput(HtmlDocument HtmlDocument)
{
     try
     {
            return HtmlDocument.DocumentNode.SelectSingleNode("//input[@type=""text""]").Attributes["value"].Value;
     }

     catch (Exception ex)
     {
          string x= ex.ToString();
            return "Error is... '"+x+"'" ;
     }
 }

Cuando obtiene el primer valor, deja de ejecutarse y da ese valor, pero necesito obtener todos esos valores de tipo de texto como salida.

Para esto ¿qué necesito hacer?

Respuesta aceptada

necesitas SelectNodes lugar de SelectSingleNode

return String.Join(",", HtmlDocument.DocumentNode.SelectNodes("//input[@type=""text""]")
                         .Select(n=>n.Attributes["value"].Value)

Si necesita tanto el tipo de entrada como el valor

var inputs = doc.DocumentNode.SelectNodes("//input").Select(n => new { 
                 Type = n.Attributes["type"].Value, Value = n.Attributes["value"].Value }).ToList();


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