Skip to main content
 首页 » 编程设计

c#之用正则表达式替换 xml 标签

2024年01月29日24leader

如何用定义的字符串替换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> 

替换结果看起来像这样的所有声卡部分:

<tag1></tag2> 
<tag2></tag2> 
...etc 
{0} 
<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 的合适工具是错误的。