日期:2014-05-18  浏览次数:20870 次

求助:大文本文件内容实现高效率查找替换的思路
问题背景:
  系统用XML存储数据用webservice调,涉及到数据结构升级,例如
<ModelList>
  <model>
  <Id>A</Id>
  <Name>B</Name>
  </model>
  <model>
  <Id>B</Id>
  <Name>D</Name>
  </model>
</ModelList>
当然 实际的层次结构比这复杂很多,升级就是实体里的字段变更,多了或者少了。对于增加的字段都给默认值,这些实体都在系统里对应了相对应的类,也都有相对应的操作方法。

问题描述:
  一次可能要动的类似XML文件有数百个,每个文件 少则几百K,多则数十M,个人感觉没法用foreach去做,会慢死去,求高效率解决此问题的思路或者代码。

------解决方案--------------------
探讨
好吧,楼上的两位兄弟,我道歉,可能是我没描述清楚,此次数据升级操作是在本地进行的,为此要开发一个winform程序来完成升级。
针对二楼大哥说的,每次调用的时候再去验证,就慢了,因为这个访问比较频繁,是一套工作流系统;
对于三楼的大哥,这些XML文件不是配置文件,不对 ,也有配置,但是配置文件都不大,绝大多数的是记录文件,保存的是正在跑或者已经跑完了的记录,不能直接用新版本的去覆盖
当然 也……

------解决方案--------------------
如果结构部分一致的话,那么完全可以找到公用的部分,然后替换新的文本

如果仅仅是在根节点下加入,那么,可以解析xml或者利用正则找到位置,然后追加在根节点的下面或者最上面

如果层次结构不明,放入的位置不确定,那么只能一个一个处理,无法完成批量操作