如何用定义的字符串替换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的适当工具是不合适的。