我正在尝试显示xml中的特殊字符。我提出了以下条件:
if (text.Contains('<'))
{
text.Replace("<", "<");
}
if (text.Contains('>'))
{
text.Replace(">", " >");
}
if (text.Contains('&'))
{
text.Replace("&", " &");
}
if (text.Contains('>'))
{
text.Replace("", """);
}
但这些逃脱了显而易见的角色 有人可以告诉我如何显示这些特殊字符。
答案 0 :(得分:9)
您的立即问题是您忽略了string.Replace
的结果 - 字符串在.NET中是不可变的,因此您需要:
result = result.Replace(...);
但是,您最好不要自己尝试这样做 - 而是使用XML API。例如,如果要创建包含<
元素的XML文档,可以使用:
var doc = new XDocument(new XElement("root", "<"));
Console.WriteLine(doc);
它会在输出时自动转义,所以你得到:
<root><</root>
你应该从不自己进行XML处理 - XML API是你的朋友,LINQ to XML是非常好的。
答案 1 :(得分:6)
var result = SecurityElement.Escape(text);