C#使用正则表达式替换格式错误的XML关闭标记

时间:2012-11-28 12:54:23

标签: c# regex string

我的格式错误的xml文件是使用错误的结束标记生成的,如下所示。

<Root>
.
.
<Question id='1' type='text'>London</Question id='1' type='text'>
<Question id='2' type='radio'>4</Question id='2' type='radio'>
<Question id='3' type='check'>6</Question id='3' type='check'>
.
.
</Root>

我需要使用propper关闭标记来优化此XML文件,如下所示。

<Question id='1' type='text'>London</Question>

总结关闭标签,例如,

<Question id='some id' type='some type'> should be replaced with </Question>

文件中有数百个标签。如何使用RegEx的字符串操作来处理该文件,以便创建格式良好的XML文件。

谢谢,

Chatur

1 个答案:

答案 0 :(得分:2)

假设str格式错误的XML字符串:

string fixed = Regex.Replace(str, @"</([^\s]+)[^>]+>", "</$1>");

测试正则表达式非常有用的是Rad Software的Regex Designer。它是免费的,它完全与.NET兼容,并且内置了帮助。