事件驱动自动生成静态页面模板解决方法(三)——文本内容替换
2007-09-13 23:00
791 查看
对文本按照模板内容进行替换的简单类封装
using System;
using System.Collections.Generic;
using System.Text;
namespace Xingmai.InformationProvider.Factory
{
public class StringBuilder
{
private RespaceArrayList _ReplaceList = new RespaceArrayList();
private TextCommonReplaceList _CommonReplaceList = new TextCommonReplaceList();
private string _Template;
/// <summary>
/// 模板
/// </summary>
public string Template
{
get
{
return _Template;
}
set
{
_Template = value;
}
}
/// <summary>
/// 替换元素组
/// </summary>
public RespaceArrayList ReplaceList
{
get
{
return _ReplaceList;
}
set
{
_ReplaceList = value;
}
}
/// <summary>
/// 通用替换组
/// </summary>
public TextCommonReplaceList CommonReplaceList
{
get
{
return _CommonReplaceList;
}
}
public StringBuilder()
{
}
/// <summary>
/// 初始化并设定模板
/// </summary>
/// <param name="strTemplate"></param>
public StringBuilder(string strTemplate)
{
Template = strTemplate;
}
/// <summary>
/// 生成文本
/// </summary>
/// <returns></returns>
public string WriteText()
{
return WriteText(true);
}
public string WriteText(bool isCommand)
{
string strContent = Template;
foreach (ReplaceItem ri in ReplaceList.Array)
{
strContent = strContent.Replace(string.Format("{0}{1}{0}", ReplaceConfig.REPLACETAG, ri.Label), ri.Text);
}
if (isCommand)
foreach (ReplaceItem ri in CommonReplaceList.Array)
{
strContent = strContent.Replace(string.Format("{0}{1}{0}", ReplaceConfig.REPLACETAG, ri.Label), ri.Text);
}
return strContent;
}
}
/// <summary>
/// 通用替换组
/// </summary>
public class TextCommonReplaceList : RespaceArrayList
{
public TextCommonReplaceList()
: base()
{
base.Add("D", DateTime.Now.Day.ToString());
base.Add("M", DateTime.Now.Day.ToString());
base.Add("Y", DateTime.Now.Year.ToString());
base.Add("H", DateTime.Now.Hour.ToString());
base.Add("F", DateTime.Now.Minute.ToString());
base.Add("S", DateTime.Now.Second.ToString());
}
}
/// <summary>
/// 替换元素组
/// </summary>
public class RespaceArrayList
{
private List<ReplaceItem> _List = new List<ReplaceItem>();
/// <summary>
/// 添加替换元素
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public void Add(ReplaceItem item)
{
_List.Add(item);
}
/// <summary>
/// 添加替换元素
/// </summary>
/// <param name="strLabel">替换元素标签</param>
/// <param name="strText">替换元素内容</param>
/// <returns></returns>
public void Add(string strLabel, string strText)
{
_List.Add(new ReplaceItem(strLabel, strText));
}
/// <summary>
/// 移除替换元素组
/// </summary>
/// <param name="item"></param>
public void Remove(ReplaceItem item)
{
_List.Remove(item);
}
/// <summary>
/// 删除指定元素的替换元素
/// </summary>
/// <param name="index"></param>
public void RemoveAt(int index)
{
_List.RemoveAt(index);
}
/// <summary>
/// 替换元素索引
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public ReplaceItem this[int i]
{
get
{
return _List[i];
}
set
{
_List[i] = value;
}
}
/// <summary>
/// 返回替换元素数组
/// </summary>
public ReplaceItem[] Array
{
get
{
return _List.ToArray();
}
}
}
/// <summary>
/// 替换元素
/// </summary>
public class ReplaceItem
{
private string _Label;
private string _Text;
public ReplaceItem()
{
}
/// <summary>
/// 替换元素定义
/// </summary>
/// <param name="strLabel">替换元素标签</param>
/// <param name="strText">替换元素内容</param>
public ReplaceItem(string strLabel, string strText)
{
Label = strLabel;
Text = strText;
}
/// <summary>
/// 需要替换的标签
/// </summary>
public string Label
{
get
{
return _Label;
}
set
{
_Label = value;
}
}
/// <summary>
/// 替换成的内容
/// </summary>
public string Text
{
get
{
return _Text;
}
set
{
_Text = value;
}
}
}
/// <summary>
/// 替换配置
/// </summary>
public class ReplaceConfig
{
/// <summary>
/// 标签标识符
/// </summary>
public const string REPLACETAG = "^";
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Xingmai.InformationProvider.Factory
{
public class StringBuilder
{
private RespaceArrayList _ReplaceList = new RespaceArrayList();
private TextCommonReplaceList _CommonReplaceList = new TextCommonReplaceList();
private string _Template;
/// <summary>
/// 模板
/// </summary>
public string Template
{
get
{
return _Template;
}
set
{
_Template = value;
}
}
/// <summary>
/// 替换元素组
/// </summary>
public RespaceArrayList ReplaceList
{
get
{
return _ReplaceList;
}
set
{
_ReplaceList = value;
}
}
/// <summary>
/// 通用替换组
/// </summary>
public TextCommonReplaceList CommonReplaceList
{
get
{
return _CommonReplaceList;
}
}
public StringBuilder()
{
}
/// <summary>
/// 初始化并设定模板
/// </summary>
/// <param name="strTemplate"></param>
public StringBuilder(string strTemplate)
{
Template = strTemplate;
}
/// <summary>
/// 生成文本
/// </summary>
/// <returns></returns>
public string WriteText()
{
return WriteText(true);
}
public string WriteText(bool isCommand)
{
string strContent = Template;
foreach (ReplaceItem ri in ReplaceList.Array)
{
strContent = strContent.Replace(string.Format("{0}{1}{0}", ReplaceConfig.REPLACETAG, ri.Label), ri.Text);
}
if (isCommand)
foreach (ReplaceItem ri in CommonReplaceList.Array)
{
strContent = strContent.Replace(string.Format("{0}{1}{0}", ReplaceConfig.REPLACETAG, ri.Label), ri.Text);
}
return strContent;
}
}
/// <summary>
/// 通用替换组
/// </summary>
public class TextCommonReplaceList : RespaceArrayList
{
public TextCommonReplaceList()
: base()
{
base.Add("D", DateTime.Now.Day.ToString());
base.Add("M", DateTime.Now.Day.ToString());
base.Add("Y", DateTime.Now.Year.ToString());
base.Add("H", DateTime.Now.Hour.ToString());
base.Add("F", DateTime.Now.Minute.ToString());
base.Add("S", DateTime.Now.Second.ToString());
}
}
/// <summary>
/// 替换元素组
/// </summary>
public class RespaceArrayList
{
private List<ReplaceItem> _List = new List<ReplaceItem>();
/// <summary>
/// 添加替换元素
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public void Add(ReplaceItem item)
{
_List.Add(item);
}
/// <summary>
/// 添加替换元素
/// </summary>
/// <param name="strLabel">替换元素标签</param>
/// <param name="strText">替换元素内容</param>
/// <returns></returns>
public void Add(string strLabel, string strText)
{
_List.Add(new ReplaceItem(strLabel, strText));
}
/// <summary>
/// 移除替换元素组
/// </summary>
/// <param name="item"></param>
public void Remove(ReplaceItem item)
{
_List.Remove(item);
}
/// <summary>
/// 删除指定元素的替换元素
/// </summary>
/// <param name="index"></param>
public void RemoveAt(int index)
{
_List.RemoveAt(index);
}
/// <summary>
/// 替换元素索引
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public ReplaceItem this[int i]
{
get
{
return _List[i];
}
set
{
_List[i] = value;
}
}
/// <summary>
/// 返回替换元素数组
/// </summary>
public ReplaceItem[] Array
{
get
{
return _List.ToArray();
}
}
}
/// <summary>
/// 替换元素
/// </summary>
public class ReplaceItem
{
private string _Label;
private string _Text;
public ReplaceItem()
{
}
/// <summary>
/// 替换元素定义
/// </summary>
/// <param name="strLabel">替换元素标签</param>
/// <param name="strText">替换元素内容</param>
public ReplaceItem(string strLabel, string strText)
{
Label = strLabel;
Text = strText;
}
/// <summary>
/// 需要替换的标签
/// </summary>
public string Label
{
get
{
return _Label;
}
set
{
_Label = value;
}
}
/// <summary>
/// 替换成的内容
/// </summary>
public string Text
{
get
{
return _Text;
}
set
{
_Text = value;
}
}
}
/// <summary>
/// 替换配置
/// </summary>
public class ReplaceConfig
{
/// <summary>
/// 标签标识符
/// </summary>
public const string REPLACETAG = "^";
}
}
相关文章推荐
- 事件驱动asp.net自动生成静态页面模板解决方法——生成静态页面
- 事件驱动自动生成静态页面模板解决方法(一)——利用静态类和FileSystemWatcher实现模板快速索引和读取
- 事件驱动自动生成静态页面模板解决方法(二)——生成静态页面(2007年9月13日更新代码)
- eclipse自动生成的get set方法 自动加上文本注释,并且注释内容包含字段中我们加的文档注释 .
- 让Myeclipse自动生成的get set方法 自动加上文本注释,并且注释内容包含字段中我们加的文档注释
- eclipse自动生成的get set方法 自动加上文本注释,并且注释内容包含字段中我们加的文档注释
- 让Myeclipse自动生成的get set方法 自动加上文本注释,并且注释内容包含字段中我们加的文档注释
- 让myeclipse自动生成bean文件时遇到的错误解决方法
- ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
- 不用模板,只用ASP+FSO生成静态HTML页的一个方法(对于内容密集型页面特别适用) 选择自 goaler 的 Blog
- Android 导入android源码有错,R.java文件不能自动生成解决方法
- res中添加的资源不能在R.java中自动生成的原因及解决方法
- textarea标签内容为(英文或数字不自动换行)的解决方法
- DEDECMS 自动缩略图无法生成问题的解决方法
- 不用模板,只用ASP+FSO生成静态HTML页的一个方法(对于内容密集型页面特别适用) 选择自 goaler 的 Blog
- 使Eclipse或AndroidStudio的代码模板自动生成类名和方法名
- js自动生成的元素与页面原有元素发生堆叠的解决方法
- 导入android项目,无法自动生成R文件的解决方法(Unable to resolve target 'android-7')
- div根据内容自动调节高度的解决方法
- input框自动填充内容背景颜色为黄色解决方法