目前在做项目中有一个曝光台栏目 ,发布信息时是没有单独的图片字段的,只有一个编辑器来保存内容,但是前台显示风格是图片排列的,为了达到效果,只能从内容中提取图片来显示到前台。参考了一下网上案例,自己写了一个获取内容中的第一张图片地址 的方法。
/// <summary> /// 获取内容中的第一张图片 /// </summary> /// <param name="htmlText">内容字符串</param> /// <returns>返回图片路径</returns> public string GetFirstImages(string htmlText) { string imgsrc = "";//这里可以设置一个默认图片,就是在内容中没有图片的时候来显示默认图片。 int startIndex = htmlText.IndexOf("<img");//有图片标签则返回当前索引值,没有则返回-1 if (startIndex >= 0) { int endIndex = htmlText.IndexOf(">", startIndex);//从上次获取的图片索引值开始查找,到第一个 > 符号结束为止。 string imgLabel = htmlText.Substring(startIndex, endIndex - startIndex + 1);//获取到img标签 string[] imgAttr = imgLabel.Split(' ');// "将图片属性根据空格分开" foreach (string item in imgAttr)//遍历属性 { if (item.IndexOf("src") >= 0)//如果有src属性,把值 保存起来 保存的是完整的src属性 :src="" { imgsrc = item.ToString(); break; } } return imgsrc = imgsrc.Substring(imgsrc.IndexOf('"') + 1, imgsrc.LastIndexOf('"') - imgsrc.IndexOf('"') - 1);//把保存的src属性中的值取出来 去掉src="和最后一个" } return imgsrc; }
建立 了一个类,写了一个公用方法。需要用的时候来调用 就行了。
欢迎加群交流