Задать вопрос

Как из строки содержащей html, вытянуть все значения атрибута нужного тега?

Есть строка содержащая html код. Хочу вытащить все значения атрибута "action" тега "form". Перепробовал много разных вариантов и пока не нашел решения.
Split и Html Agility Pack не подходят.

Надеюсь, решение еще есть.

UPD:
Пример.
Строка состоит из 10 контейнеров, которые состоят из DIV'ов, в каждом есть FORM. Из FORM нужно вытянуть значение атрибута.
  • Вопрос задан
  • 272 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
GreenBee
@GreenBee
ASP.NET программист
По какой причине не подходит Html Agility Pack? Он как раз умеет это хорошо делать.

Можно, конечно, написать регулярное выражение, но проблема с HTML в том, что он нерегулярный. Т.е. у атрибута могут быть кавычки, могут не быть, может одна быть. Тэг может быть закрыт, а может нет.
Все это придеться учитывать в регулярном выражении.

var matches = (new Regex("<form.*?action=(\"[^\\\"]+?\"|'[^\']+?'|[\\S]+?).*?>"
, RegexOptions.Singleline | RegexOptions.IgnoreCase)
).Matches("HTML CODE <form action=1><form action='2'><form action=\"3\">");
foreach(Match m in matches)
{
	var actionValue = m.Groups[1].Value.Trim(new char[]{'\'','"'});
}

Вот так к примеру: https://dotnetfiddle.net/Iuuy56
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ImmortalCAT
@ImmortalCAT
C# loving
напиши пример строки....
обычно сплит подходит...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы