gpt4 book ai didi

c# - 使用 htmlagility pack 替换 src 值

转载 作者:太空狗 更新时间:2023-10-29 14:46:13 25 4
gpt4 key购买 nike

我正在为网站使用 CMS 系统。我的内容贡献者在系统中放置了一些非常大的图像,然后继续在 cms 中调整它们的大小,以便它们适合页面或文章。当网络用户点击该页面时,他们会下载完整的图像,即使贡献者已经调整了图像的大小。我找到了一个图像缩放插件,我需要做的就是在src中的图像名称后面添加宽度和高度参数。进行搜索看起来我应该使用 html 敏捷包来实现此目的,但有人可以帮助我完成我的代码。我已经想出如何在内容中找到 img 标签,但我不知道如何在 src 上附加宽度和高度。

旧标签

<img src="/IMG_3556E__sq2.jpg?n=9418" id="/IMG_3556E__sq2.jpg?n=9418" width="83px" height="83px" />

对此 - 注意 src 值已更改

<img src="/IMG_3556E__sq2.jpg?width=83&amp;height=83" id="/IMG_3556E__sq2.jpg?n=9418" width="83px" height="83px" />

到目前为止,这是我的代码。我所需要的只是在 if 语句中说明 img 标签是否包含宽度或高度,将它们附加到 src 属性。

ContentManager contentManager = new ContentManager();
ContentData Content = contentManager.GetItem(id);

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(Content.Html);

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//img/@src"))
{
if (//img has a width or height, it means image has been resized) {
//append that nodes src within the content.html with the ?width=x&height=x
}
}

最佳答案

试试这个:

static void Main(string[] args)
{
var htmlDoc = new HtmlDocument();
htmlDoc.Load(@"E:\Libs\HtmlAgilityPack.1.4.0\htmldoc.html");

foreach(HtmlNode node in htmlDoc.DocumentNode
.SelectNodes("//img[@src and (@width or @height)]"))
{
var src = node.Attributes["src"].Value.Split('?');

var width = node.Attributes["width"].Value.Replace("px", "");

var height = node.Attributes["height"].Value.Replace("px", "");

node.SetAttributeValue("src",
src[0] +
string.Format("?width={0}&height{1}", width, height));
}
}

关于c# - 使用 htmlagility pack 替换 src 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com