gpt4 book ai didi

c# - 如何将 等 xml 标签格式更改为

转载 作者:太空宇宙 更新时间:2023-11-03 20:28:52 27 4
gpt4 key购买 nike

我有一个 xml 文件。根据我的要求,我需要更新空标签,例如我需要更改 <xml></xml> to <xml/> .是否可以像那样更改标签..

谢谢...

最佳答案

var xmlString="<xml></xml> <toto></toto>";
var properString=System.Text.RegularExpressions.Regex.Replace(xmlString, "<([^>]+)></[^>]+>", "<$1/>");

编辑:解释!

@Neil Knight 已经在评论中提供了 a link to Wikipedia解释正则表达式的概念。此处提供了特定于 .NET 的部分:.NET Framework Regular Expressions

起始 XML 标记可以与以下正则表达式匹配:<[^>]+> . [^>]+ part 可以理解为:所有不是“>”的字符,至少有一个字符(因此 <> 不匹配,但 <a> 匹配)。结束 XML 标记可以与相同类型的表达式匹配:</[^>]+> (注意第一个字符后的斜线)。所以正则表达式 <[^>]+></[^>]+>匹配空标签,例如 <foo></foo> (但要小心,它也匹配 <foo></bar>,这不是有效的 XML 代码)。

我们现在需要的是隔离“<”和“>”之间的字符。为此,我们使用括号:<([^>]+)> .这指示正则表达式引擎捕获匹配的字符。每组括号稍后可以在替换操作中由“$x”字符串引用(其中“x”是一个数字:“$1”表示第一个匹配的括号,“$2”表示第二个匹配的括号,等等)。

因此,通过调用 Regex.Replace(xmlString, "<([^>]+)></[^>]+>", "<$1/>") , <foo></foo>将被 <foo/> 取代(捕获“foo”字符,并用它们替换“$1”)。 <foo></bar>也将被替换为 <foo/> .

我希望这个解释对@Felix K 来说足够了。;o)
(我的英语不是很好,所以我没有提供很多细节)

关于c# - 如何将 <xml></xml> 等 xml 标签格式更改为 <xml/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8711216/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com