国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

C#獲取HTML文本的第一張圖片與截取內(nèi)容摘要示例代碼

2019-10-29 21:20:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

獲取第一張圖片

要我們獲得到的數(shù)據(jù)是一段HTML文本、也許這段文本里面有許多圖片、需要截取一張作為標(biāo)題圖片、也就是做為主圖、這時(shí)就可以用到下面這個(gè)方法獲取到第一張圖片。

示例代碼

#region 獲取第一張圖片/// <summary>/// 獲取HTML文本的圖片地址/// </summary>/// <param name="content"></param>/// <returns></returns>//// public ArrayList getimgurl(string html){  ArrayList resultStr = new ArrayList();  Regex r = new Regex(@"<IMG[^>] src=s*(?:´(?<src>[^´] )´|""(?<src>[^""] )""|(?<src>[^>s] ))s*[^>]*>", RegexOptions.IgnoreCase);//忽視大小寫(xiě)  MatchCollection mc = r.Matches(html);  foreach (Match m in mc)  {    resultStr.Add(m.Groups["src"].Value.ToLower());  }  if (resultStr.Count > 0)  {    return resultStr;  }  else  {    resultStr.Clear();    return resultStr;  }}#endregion

注意:上面所返回的是一個(gè)ArrayList 集合、包含了文本里面所有的Img的src、這樣我們就可以訪(fǎng)問(wèn)到img的src

截取HTML文本

有時(shí)候我們得到的數(shù)據(jù)是一段HTML文本、需要截取HTML文本的一部分作為內(nèi)容摘要、此時(shí)、我們可以運(yùn)用下面這個(gè)方法

示例代碼

 #region 新聞內(nèi)容摘要/// <summary>/// 新聞內(nèi)容摘要/// </summary>/// <param name="sString"></param>/// <param name="nLeng"></param>/// <returns></returns>public string GetContentSummary(string content, int length, bool StripHTML){  if (string.IsNullOrEmpty(content) || length == 0)    return "";  if (StripHTML)  {    Regex re = new Regex("<[^>]*>");    content = re.Replace(content, "");    content = content.Replace(" ", "").Replace(" ", "");    if (content.Length <= length)      return content;    else      return content.Substring(0, length)  "……";  }  else  {    if (content.Length <= length)      return content;    int pos = 0, npos = 0, size = 0;    bool firststop = false, notr = false, noli = false;    StringBuilder sb = new StringBuilder();    while (true)    {      if (pos >= content.Length)        break;      string cur = content.Substring(pos, 1);      if (cur == "<")      {        string next = content.Substring(pos  1, 3).ToLower();        if (next.IndexOf("p") == 0 && next.IndexOf("pre") != 0)        {          npos = content.IndexOf(">", pos)  1;        }        else if (next.IndexOf("/p") == 0 && next.IndexOf("/pr") != 0)        {          npos = content.IndexOf(">", pos)  1;          if (size < length)            sb.Append("<br/>");        }        else if (next.IndexOf("br") == 0)        {          npos = content.IndexOf(">", pos)  1;          if (size < length)            sb.Append("<br/>");        }        else if (next.IndexOf("img") == 0)        {          npos = content.IndexOf(">", pos)  1;          if (size < length)          {            sb.Append(content.Substring(pos, npos - pos));            size = npos - pos  1;          }        }        else if (next.IndexOf("li") == 0 || next.IndexOf("/li") == 0)        {          npos = content.IndexOf(">", pos)  1;          if (size < length)          {            sb.Append(content.Substring(pos, npos - pos));          }          else          {            if (!noli && next.IndexOf("/li") == 0)            {              sb.Append(content.Substring(pos, npos - pos));              noli = true;            }          }        }        else if (next.IndexOf("tr") == 0 || next.IndexOf("/tr") == 0)        {          npos = content.IndexOf(">", pos)  1;          if (size < length)          {            sb.Append(content.Substring(pos, npos - pos));          }          else          {            if (!notr && next.IndexOf("/tr") == 0)            {              sb.Append(content.Substring(pos, npos - pos));              notr = true;            }          }        }        else if (next.IndexOf("td") == 0 || next.IndexOf("/td") == 0)        {          npos = content.IndexOf(">", pos)  1;          if (size < length)          {            sb.Append(content.Substring(pos, npos - pos));          }          else          {            if (!notr)            {              sb.Append(content.Substring(pos, npos - pos));            }          }        }        else        {          npos = content.IndexOf(">", pos)  1;          sb.Append(content.Substring(pos, npos - pos));        }        if (npos <= pos)          npos = pos  1;        pos = npos;      }      else      {        if (size < length)        {          sb.Append(cur);          size ;        }        else        {          if (!firststop)          {            sb.Append("……");            firststop = true;          }        }        pos ;      }    }    return sb.ToString();  }}#endregion

總結(jié)

以上就是利用C#獲取一段HTML文本中的第一張圖片和截取內(nèi)容摘要的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用C#能有所幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到c#教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沐川县| 中宁县| 称多县| 宜城市| 寿光市| 左权县| 湖口县| 霍林郭勒市| 五大连池市| 安福县| 伊金霍洛旗| 大石桥市| 五家渠市| 丘北县| 新邵县| 临海市| 微博| 龙里县| 南汇区| 曲松县| 托克托县| 曲水县| 迭部县| 林甸县| 九寨沟县| 井陉县| 遵化市| 太白县| 吕梁市| 平和县| 余庆县| 鲁甸县| 天全县| 剑阁县| 金山区| 祁阳县| 项城市| 德钦县| 许昌市| 阳信县| 宿松县|