目前在做项目中有一个曝光台栏目 ,发布信息时是没有单独的图片字段的,只有一个编辑器来保存内容,但是前台显示风格是图片排列的,为了达到效果,只能从内容中提取图片来显示到前台。参考了一下网上案例,自己写了一个获取内容中的第一张图片地址 的方法。
/// <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;
}
建立 了一个类,写了一个公用方法。需要用的时候来调用 就行了。