Utilisation du pack Htmlagility pour obtenir des valeurs d'attribut

c# html-agility-pack html-parsing

Question

En utilisant Htmlagilitypack je peux obtenir la valeur d'attribut pour une balise en utilisant le code suivant:

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

Lorsqu'il obtient la première valeur, il arrête l'exécution et donne cette valeur, mais je dois obtenir toutes les valeurs de type texte en sortie.

Pour cela que dois-je faire?

Réponse acceptée

vous avez besoin de SelectNodes au lieu de SelectSingleNode

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

Si vous avez besoin du type d’entrée et de la valeur

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi