我有两个比较大而且很相似的XML文件(节点的个数接近20000)file1, file2,我现在想把file1中那些在file2存在的叶子节点删除
一直没有找到效率比较高的方法后来我使用正则表达式进行模式匹配,方法如下:
1)string[] test1 = Regex.Split(tmp2, "\n");
2)string temp = string.Join("|", test1); //生成匹配模式 like  <Tag1>Content</Tag1>|<Tag2>Content</Tag2>... 
3) MatchCollection mc =  Regex.Matches(tmp1, temp); //模式匹配,找到存在的节点,这个命令执行很快 (这种算法有多余的,先不考虑)
4) MessageBox.Show(mc.Count.ToString()); // 这条命令花很长时间,40多秒,最终显示 11606有人知道这是为什么吗?我随便花了个匹配模式(不使用|连接),让这个匹配模式能匹配10000多条记录,mc.count就能很快显示出来,难道是由于|连接符号造成的?那为什么第三步执行很快呢?急死我了