我必须解析电子邮件的html,获取所有img标签并将src值替换为我想要的图像的url。
这部分已经完成。我可以访问<img>
并使用我想要的网址更改属性。
问题在于,当我打印html时,src等于cid:companylogo
,它应该是我给出的图像的完整网址。
我需要知道在更改原始html中<img>
的src值后如何加载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;
答案 0 :(得分:1)
正如您在评论中所述,您传递的item
变量也会被传入 - 但是,这不是您正在操作的。
而不是:
body = item.Body;
您应该使用:
body = email.Body;
更新
由于您现在已经发现您正在使用HAP,因此您只需获取文档节点的内部HTML。
未测试:
body = email.DocumentNode.InnerHtml;