xml中的特殊字符转义

本文关键字:转义 特殊字符 xml | 更新日期: 2023-09-27 18:17:07

使用Regex,我如何在xml属性值中转义特殊字符?

给定以下xml作为字符串:

"<node attr='"<Sample>'"></node>"

我想要得到:

"<node attr='"&lt;Sample&gt;'"></node>"

System.Security.SecurityElement。转义函数将不起作用,因为它试图转义每个特殊字符(包括标签开/闭尖括号)。

xml中的特殊字符转义

string text = "<node attr='"<Sample>'"></node>";
string pattern = @"(?<='b'w+'s*='s*"")<'w+>(?="")";
string result = Regex.Replace(text, pattern, m => SecurityElement.Escape(m.Value));
Console.WriteLine(text);
Console.WriteLine(result);

地点:
?<= -正面向后看
'b -从单词边界
开始匹配'w+ -匹配一个或多个单词字符
's* -匹配零个或多个空白字符
?= -正面展望