【发布时间】:2018-04-03 18:00:03
【问题描述】:
我有一个完整的 XML 文档字符串,我应该将自结束标记替换为开始和结束标记。
例如:<name />
应转换为:<name></name>
我尝试不使用正则表达式:
myXML.Replace("<name />","<name></name>");
工作,但仅适用于这个标签,这就是为什么我想用正则表达式来支持 XML 文档的所有可能的 XML 标签而不替换特定的 XML 节点。
我接受任何解决问题的建议。 提前致谢。
【问题讨论】:
-
一般来说:为什么?它们是完全有效的。如果您坚持:
<(.*?)\s*/>并将其替换为<$1></$1>,请在此处查看演示:regex101.com/r/P4qmhR/1 -
标签包含什么属性? @Jan,该正则表达式不安全,因为
.匹配任何字符。 -
另外在 ideone.com 上查看演示:ideone.com/zP6VGv
-
从正则表达式开始: (?
) 然后改进它以更好地适应您的 xml 中的所有情况.