HtmlAgilityPack изменить HTML и вернуть обновленный контент - PullRequest
1 голос
/ 11 декабря 2019

Я не часто использовал HtmlAgilityPack и застрял в следующей проблеме.

Я проверяю, поддерживает ли браузер WebP, и если да, то я добавляю новый параметр в srcизображение.

У меня это работает, но я не могу понять, как вернуть обновленный HTML, любая помощь будет оценена.

public static HtmlString AppendWebPString(HtmlString htmlText)
        {

            bool browserSupportsWebP = BrowserSupportsWebPHelper.WebPSupported();

            if (!browserSupportsWebP) return htmlText;

            var h = new HtmlDocument();
            h.LoadHtml(htmlText.ToString());

            const string webP = "&quality=80&format=webp";

            if (h.DocumentNode.SelectNodes("//img[@src]") == null) return htmlText;

            string imgOuterHtml = string.Empty;
            foreach (HtmlNode image in h.DocumentNode.SelectNodes("//img[@src]"))
            {
                var src = image.Attributes["src"].Value.Split('&');
                image.SetAttributeValue("src", src[1] + string.Format(webP));
                imgOuterHtml = image.OuterHtml;
            }

            //How do I return the updated html here
            return new HtmlString(h.ParsedText);
        }
...