日期:2014-05-17 浏览次数:20585 次
<div> <ul> <!--{$news num="10" classid="1" bytype="0"}--> <li><a href="{news.url}" target="_blank"{news.style}>·{news.i}、{news.title}</a>{news.AddTime dateformat="mm-dd"}</li> <!--{/$news}--> </ul> </div>
public string NewsList(string content) { string Attributes = ""; string Text = ""; string AllText = ""; Regex r = new Regex(@"(\{\$news\s+(?<attributes>[^\]]*?)\}(?<text>[\s\S]*?)\{/\$news\})", RegexOptions.Compiled | RegexOptions.IgnoreCase); foreach (Match m in r.Matches(content)) { Attributes = m.Groups["attributes"].ToString(); Text = m.Groups["text"].ToString(); AllText = m.Groups[0].Value.ToString(); string TopNum = null; TopNum = GetAttr(Attributes, "num"); if (TopNum != null) { TopNum = " Top " + TopNum + " "; } string strSQL = "Select " + TopNum + " * From HL_News Where 1 = 1 "; string ClassId = null; ClassId = GetAttr(Attributes, "classid"); if (ClassId != null) { strSQL += " And ClassId = " + ClassId + " "; } strSQL += " Order By id Desc "; SqlConnection con = dbConn.GetConn(); con.Open(); SqlDataAdapter da = new SqlDataAdapter(strSQL, con); DataSet ds = new DataSet(); da.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { int index = 1; StringBuilder str = new StringBuilder(); foreach (DataRow dr in ds.Tables[0].Rows) { StringBuilder txt = new StringBuilder(); txt.Append(Text); txt = txt.Replace("{news.classid}", dr["classid"].ToString()); txt = txt.Replace("{news.title}", dr["title"].ToString()); txt = txt.Replace("{news.url}", dr["id"].ToString()); txt = txt.Replace("{news.i}", index.ToString()); index++; str.Append(txt); } content = content.Replace(AllText, str.ToString()); } } return content; } /// <summary> /// 获取属性的值 /// </summary> /// <param name="tag">str</param> /// <param name="tagName">属性名称</param> /// <returns>属性的值</returns> private string GetAttr(string tag, string tagName) { Regex r = new Regex(@"(?<key>\w+)\s*=\s*(?<value>" + "\"" + "[^\"]*\")", RegexOptions.Compiled | RegexOptions.IgnoreCase); foreach (Match m in r.Matches(tag)) { if (m.Groups["key"].ToString().Trim().ToLower() == tagName.ToLower()) { return m.Groups["