Убрать путь из ссылок на 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
Листинг программы
Uri rootUri = new Uri("http://example.com");
 
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.OptionAutoCloseOnEnd = true;
htmlDoc.LoadHtml(html);
foreach (var linkElement in htmlDoc.DocumentNode.SelectNodes("//link[@rel='stylesheet']"))
{
    string href = linkElement.GetAttributeValue("href", "");
    if (string.IsNullOrEmpty(href)) continue;
    
    Uri cssUri = new Uri(href, UriKind.RelativeOrAbsolute);
    if (!cssUri.IsAbsoluteUri)
    {
        cssUri = new Uri(rootUri, cssUri);
    }
    href = Path.GetFileName(cssUri.GetComponents(UriComponents.Path, UriFormat.Unescaped));
    
    if (href.EndsWith(".css", StringComparison.OrdinalIgnoreCase))
    {
        linkElement.SetAttributeValue("href", href);
    }
}

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


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

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

10   голосов , оценка 4.3 из 5
Похожие ответы