如何使用 HTML Agility 更改所有图像 src 属性?
How to change all images src attributes using HTML Agility?
我需要将所有 src 属性转换为指向绝对路径而不是相对路径。我尝试使用 HTML Agility:
string html = "<body><div><img src=\"/folder/a.png\"/></div><div> <img src=\"/folder/b.png\"/></div></body>";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
foreach (var node in htmlDoc.DocumentNode.SelectNodes("//img"))
{
var src = node.Attributes[@"src"].Value;
if (src.StartsWith("/"))
node.SetAttributeValue("//src", "www.abc.xyz" + src);
}
var newHtml = htmlDoc.Text;
但是src属性还是指向相对路径!
您必须使用 htmlDoc.DocumentNode.WriteTo()
方法来反映您对原始 html
的更改
string html = "<body><div><img src=\"/folder/a.png\"/></div><div> <img src=\"/folder/b.png\"/></div></body>";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
foreach (var node in htmlDoc.DocumentNode.SelectNodes("//img"))
{
var src = node.Attributes[@"src"].Value;
if (src.StartsWith("/"))
node.SetAttributeValue("src", "www.abc.xyz" + src);
}
var newHtml = htmlDoc.DocumentNode.WriteTo();
输出:
试试看对你有帮助
我需要将所有 src 属性转换为指向绝对路径而不是相对路径。我尝试使用 HTML Agility:
string html = "<body><div><img src=\"/folder/a.png\"/></div><div> <img src=\"/folder/b.png\"/></div></body>";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
foreach (var node in htmlDoc.DocumentNode.SelectNodes("//img"))
{
var src = node.Attributes[@"src"].Value;
if (src.StartsWith("/"))
node.SetAttributeValue("//src", "www.abc.xyz" + src);
}
var newHtml = htmlDoc.Text;
但是src属性还是指向相对路径!
您必须使用 htmlDoc.DocumentNode.WriteTo()
方法来反映您对原始 html
string html = "<body><div><img src=\"/folder/a.png\"/></div><div> <img src=\"/folder/b.png\"/></div></body>";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
foreach (var node in htmlDoc.DocumentNode.SelectNodes("//img"))
{
var src = node.Attributes[@"src"].Value;
if (src.StartsWith("/"))
node.SetAttributeValue("src", "www.abc.xyz" + src);
}
var newHtml = htmlDoc.DocumentNode.WriteTo();
输出:
试试看对你有帮助