Убрать путь из ссылок на 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д