@iXelper

Парсинг html с помощью c# стандартных инструментов?

Есть html код с элементом:
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Hello word</div>

Xpath: //*[@id="Text"]/div[2]/ol/li/div

Вопрос: Как вытащить строку "Hello Word" с помощью Regex

Извиняюсь если задаю глупые вопросы, но безвыходная ситуация))
  • Вопрос задан
  • 2144 просмотра
Решения вопроса 1
@Sumor
Если у вас правильный html с закрывающимися тегами, то можно попробовать через XDocument или XElement
Условно, где-то так:
var xEl = XElement.Parse("<div style=\"font-family: 'Courier New', Courier, monospace; font-weight: normal\">Hello word</div>");
Console.WriteLine((string)xEl);

Там же можно воспользоваться XPath. Где-то так:
var xDoc = XDocument.Parse("<div><div class='c1'>c1</div><div class='c2'>c2</div><div class='c3'>c3</div></div>");

string xPath = "//div[@class='c1']";

foreach (var xElement in xDoc.XPathSelectElements(xPath))
{
	Console.WriteLine((string)xElement);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
для плохоопределенных html существует HTMLAgilityPack
CsQuery Fizzler (это я самкогдато пробовал) и полно альтернатив https://stackoverflow.com/questions/1065031/is-the...
при помощи Regex лудить html знать толк в извращениях

это все давно стандртные инструменты так как есть nuget
Ответ написан
Комментировать
@Milton812
Если действительно необходимо выполнить парсинг HTML при помощи регулярных выражений, то можно сделать так
string html = "<div style=\"font - family: 'Courier New', Courier, monospace; font - weight: normal; \">Hello word</div>";
Regex regex = new Regex("<div style=\"font - family: 'Courier New', Courier, monospace; font - weight: normal; \">(.*)<\\/div>");
string text = regex.Match(html).Groups[1].Value;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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