首页 > 解决方案 > C# XML如何停止&从转换为&

问题描述

这是关于 C# VS 2012

using System.Xml.Linq;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            XElement xe = new XElement("entry", "&27&");
            Console.WriteLine(xe);
        }
    }
}

我的用户希望在他的 xml 输入文件中包含一些奇怪的条目,其中涉及 2 &s,以便他可以执行他的 Linux shell 脚本。为了简单起见,当我执行上述操作时,我得到以下输出:

<entry>&amp;27&amp;</entry>

但我想要这个输出:

<entry>&27&</entry>

根据我的阅读,单个 & 会导致不正确的 XML 语法,所以 VS 故意这样做,但我有 2 个 &s。我的用户不会接受

<entry>&amp;27&amp;</entry> 

作为输入,他想要“&27&”所以我被卡住了,请帮忙。

标签: c#xml

解决方案


这完全取决于他如何阅读您提供的 xml。在您的示例中,控制台上的打印将在您打印 xml 时显示转义的 & 字符。如果您打印 Xelement 的值,Console.Writeline(xe.value);您将看到预期的结果。

您的 xml 是完全完美的,只要您的客户使用适当的 xml 解析器解析 xml 文件,他就能够以所需格式获取属性值并使用它。


推荐阅读