将XML自关闭标记转换为打开和关闭标记

时间:2017-10-23 08:39:36

标签: c# .net regex xml

我有一个完整的XML文档字符串,我应该将自闭标记替换为打开和关闭标记。

例如:<name />

应转换为:<name></name>

我尝试了没有正则表达式:

myXML.Replace("<name />","<name></name>");

只适用于此标记,这是我希望使用正则表达式执行此操作的原因,以支持XML文档的所有可能的XML标记,而无需替换特定的XML节点。

我接受任何解决问题的建议。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

作为答案:您可以使用

<(.*?)\s*/> 

并将其替换为<$1></$1>,请参阅a demo on regex101.com

答案 1 :(得分:0)

被接受的答案会将潜在的属性放在结束标签以及开始标签上。

我必须为一组SVG创建关闭标签以支持IE11。如果仅在开始标记上具有属性,请使用以下解决方案。

查找:<([a-z]+)+(.*?)\s*/>
替换:<$1$2></$1>

此解决方案创建两个不同的正则表达式组。 $1包含XML标签。 $2包含属性。