Использование Htmlagility pack для получения значений атрибутов

c# html-agility-pack html-parsing

Вопрос

Используя Htmlagilitypack я могу получить значение атрибута для одного тега, используя следующий код:

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

Когда он получает первое значение, он прекращает выполнение и дает это значение, но мне нужно получить все эти значения типа текста в качестве вывода.

Для чего мне нужно это делать?

Принятый ответ

вам нужно SelectNodes вместо SelectSingleNode

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

Если вам нужны как тип ввода, так и значение

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


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему