Убрать путь из ссылок на css файлы - C#

Узнай цену своей работы

Формулировка задачи:

необходимо найти ссылки на .css файлы и заменить их ТОЛЬКО на название самого файла. например: было dsfs/hfhf/12w.css - стало только 12w.css ссылки находим (Regex.Matches), обрабатываем в цикле (foreach (Match m in matches)), название файла узнаём. как сделать, чтобы именно для этой ссылки, именно её название? Regex.Replace пробовал, и в цикл foreach ставил (меняет только для последней ссылки. если их на странице 5, то первых 4 без изменений) и из цикла выносил (меняет все ссылки, но на последнее имя. изменены 5 ссылок, но все с одинаковым именем, как у 5). думал как-то через List, но фантазия закончилась.

Решение задачи: «Убрать путь из ссылок на css файлы»

textual
Листинг программы
  1. Uri rootUri = new Uri("http://example.com");
  2.  
  3. HtmlDocument htmlDoc = new HtmlDocument();
  4. htmlDoc.OptionAutoCloseOnEnd = true;
  5. htmlDoc.LoadHtml(html);
  6. foreach (var linkElement in htmlDoc.DocumentNode.SelectNodes("//link[@rel='stylesheet']"))
  7. {
  8.     string href = linkElement.GetAttributeValue("href", "");
  9.     if (string.IsNullOrEmpty(href)) continue;
  10.    
  11.     Uri cssUri = new Uri(href, UriKind.RelativeOrAbsolute);
  12.     if (!cssUri.IsAbsoluteUri)
  13.     {
  14.         cssUri = new Uri(rootUri, cssUri);
  15.     }
  16.     href = Path.GetFileName(cssUri.GetComponents(UriComponents.Path, UriFormat.Unescaped));
  17.    
  18.     if (href.EndsWith(".css", StringComparison.OrdinalIgnoreCase))
  19.     {
  20.         linkElement.SetAttributeValue("href", href);
  21.     }
  22. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы