如何用定义的字符串替换xml文件中的特定部分?

替换所有声卡部件,结果如下所示:

<tag1></tag2>
<tag2></tag2>
...etc
<soundcard num=0>
<name>test123</name>
</soundcard>
<soundcard num=1>
<name>test123</name>
</soundcard>
<soundcard num=2>
<name>test123</name>
</soundcard>
<tag5></tag5>

我正在使用c#.net 3.5,想到了正则表达式解决方案

最佳答案

如果必须是正则表达式,则您的XML文件格式正确,并且您知道(例如,从DTD中得知)不能嵌套<soundcard>标记,则可以使用

(<soundcard.*?</soundcard>\s*)+


并全部替换为{0}

在C#中:

resultString = Regex.Replace(subjectString, @"(<soundcard.*?</soundcard>\s*)+", "{0}", RegexOptions.Singleline);


要快速解决一次性问题,我认为可以。一般而言,将正则表达式视为处理XML的适当工具是不合适的。

09-17 13:56