Utilizzo del pacchetto Htmlagility per ottenere i valori degli attributi

c# html-agility-pack html-parsing

Domanda

Usando Htmlagilitypack posso ottenere il valore dell'attributo per un tag usando il seguente codice:

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

Quando ottiene il primo valore, interrompe l'esecuzione e fornisce quel valore, ma ho bisogno di ottenere tutti i valori del tipo di testo come output.

Per questo cosa devo fare?

Risposta accettata

hai bisogno di SelectNodes invece di SelectSingleNode

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

Se hai bisogno sia del tipo di input che del valore

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


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché