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#如何实现这个功能?是不是相当复杂?

解决方案 »

  1.   

    更不用说StringBuilder和正则类了。
      

  2.   

    System.Xml装入缓存hashtable然后替换,速度还是不错的
      

  3.   

    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中即可。
      

  4.   

    正则
    <Old1>${name}</Old1><New1>(?<name>.+?)</New1>