изменение атрибутов src <img> - PullRequest
1 голос
/ 21 февраля 2012

Мне нужно разобрать html письма, получить все теги img и заменить значение src на URL нужного мне изображения.

Эта часть уже сделана.Я могу получить доступ к <img> и изменить атрибут с URL-адресом, который я хочу.

Проблема в том, что когда я печатаю HTML, src равен cid:companylogo, и это должен быть полный URL-адрес изображения, которое я дал.

Мне нужно знать, как загрузить html после изменения значений src <img> в исходном html.Приведенный ниже код получает в качестве параметра исходный html письма в виде строки "body"

        string SRC = "";
        int indice = 0;
        //Console.WriteLine(body);

        HtmlDocument email = new HtmlDocument();
        email.LoadHtml(body);

        foreach (HtmlNode img in email.DocumentNode.SelectNodes("//img"))
        {
            SRC = img.GetAttributeValue("src", null);
            for (int i = 0; i < contentIDS.Count; i++)
            {
                if (SRC.Equals(contentIDS[i]))
                {
                    indice = i;
                    break;
                }
            }

            img.SetAttributeValue("src", urls[indice].ToString());//change src value
            Console.WriteLine("URL" + img.GetAttributeValue("src", null));//its printed how i want to
        }

        body = item.Body;//am stuck here i want body to have a final value of the whole html but with the changes made in src above.
        return body;

1 Ответ

1 голос
/ 21 февраля 2012

Как вы заметили в ваших комментариях, переменная item, которую вы используете, также передается - однако это не то, чем вы манипулируете.

Вместо:

body = item.Body;

Вы должны использовать:

body = email.Body;

Обновление:

Поскольку теперь вы обнаружили, что используете HAP, вы можете просто получить внутренний HTML-код узла документа.

Не проверено:

body = email.DocumentNode.InnerHtml;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...