显示xml特殊字符

本文关键字:特殊字符 xml 显示 | 更新日期: 2023-09-27 18:26:46

我正在尝试显示xml中存在的特殊字符。我提出了以下条件:

        if (text.Contains('<'))
        {
            text.Replace("<", "&lt;");
        }
        if (text.Contains('>'))
        {
            text.Replace(">", " &gt;");
        }
        if (text.Contains('&'))
        {
            text.Replace("&", " &amp;");
        }
        if (text.Contains('>'))
        {
            text.Replace("", "&quot;");
        }  

但这些逃脱了显而易见的性格
有人能告诉我如何显示这些特殊的字符吗。

显示xml特殊字符

您的即时问题是您忽略了string.Replace的结果-字符串在.NET中是不可变的,因此您需要:

result = result.Replace(...);

然而,您最好不要自己尝试这样做,而是使用XML API。例如,如果您想创建一个包含<元素的XML文档,您只需使用:

var doc = new XDocument(new XElement("root", "<"));
Console.WriteLine(doc);

它将在输出时自动转义,因此您可以得到:

<root>&lt;</root>

您几乎应该永远不要自己处理XML——XMLAPI是您的朋友,LINQ-to-XML是非常好的一个。

您需要SecurityElement.Escape

var result = SecurityElement.Escape(text);