您的位置:首页 > 其它

事件驱动自动生成静态页面模板解决方法(三)——文本内容替换

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 = "^";

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐