C#如果动态地,批量地替换字符串?

dvdvip 2009-07-30 07:11:22
C:\H.xml

如果这个H.xml文件的内容为:



<?xml version="1.0" encoding="utf-8"?>
<Replace>
<Old1>Stupid</Old1><New1>Clever</New1>
<Old2>Bad</Old2><New2>Good</New2>
</Replace>




用户点击按钮后,TextBox1里的内容,把“Stupid”替换成“Clever”;把“Bad”替换成“Good”。


当然,这替换的字符数和内容不是固定的。用户可以任意地修改H.xml的内容。例如,修改为:




<?xml version="1.0" encoding="utf-8"?>
<Replace>
<Old1>野兽</Old1><New1>美女</New1>
<Old2>减法</Old2><New2>加法</New2>
<Old3>肥胖</Old3><New3>苗条</New3>
<Old4>下落</Old4><New4>上升</New4>
</Replace>




用户点击按钮后,TextBox1里的内容,把“野兽”替换成“美女”;把“减法”替换成“加法”;把“肥胖”替换成“苗条”;把“下落”替换成“上升”。



我想知道,C#如何实现这个功能?是不是相当复杂?

...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
超维电脑科技 2009-07-31
  • 打赏
  • 举报
回复
学习
virus7581 2009-07-30
  • 打赏
  • 举报
回复
学习
编程有钱人了 2009-07-30
  • 打赏
  • 举报
回复
正则


<Old1>${name}</Old1><New1>(?<name>.+?)</New1>
123_321_1234567 2009-07-30
  • 打赏
  • 举报
回复
List<String> Update=new List<String>();
List<String> Old=new List<String>();
Update.add("美女");
old.add("野兽");
Update.add("加法");
Old.add("减法");
Update.add("苗条");
Old.add("肥胖");
......
DataSet NewSet=new DataSet();
NewSet.ReadXML("H.xml");
for(int i=0;i<NewSet.Tables[0].RowCount;i++)
{
for(int j=0;j<Old.Length;j++)
{
if(NewSet.Tables[0].Rows[i][0].ToString()==Old[j]
{
NewSet.Tables[0].Rows[i][0]=Update[j];
}
}
}
然后再将NewSet里的数据更新到H.xml中即可。
mb_1985 2009-07-30
  • 打赏
  • 举报
回复
System.Xml装入缓存hashtable然后替换,速度还是不错的
biweilun 2009-07-30
  • 打赏
  • 举报
回复
System.Xml操作很方便
dancingbit 2009-07-30
  • 打赏
  • 举报
回复
更不用说StringBuilder和正则类了。
dancingbit 2009-07-30
  • 打赏
  • 举报
回复
string类就有Replace方法

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧