-1

我在 C# 上有一个这样的字符串:

string sxml="<id>xpto</id>"

我想使用 Xlinq 保存一个 xml 文件:

XElement cursosXML = new XElement("MenuItem", new XCData(sxml));
cursosXML.save("C:\\xpto.xml")

当我阅读我的 xml 文件时,会出现:

<MenuItem><![CDATA[<id>xpto</id>]]></MenuItem>

但我不想<![CDATA[

我怎样才能得到这个结果?

<MenuItem>&lt;xpto&gt;3&lt;</MenuItem>
4

1 回答 1

1

这是您应该如何将字符串添加到元素的方法

        XElement sxml = XElement.Parse("<id>xpto</id>");
        XElement cursosXML = new XElement("MenuItem", sxml);
        cursosXML.Save("C:\\xpto.xml");



以下是您遇到的麻烦的解释。仅供参考

<id>xpto</id>是一个 XML 元素,但是您将它添加到当前元素中,就好像它是一个文字字符串一样。当你这样做时,计算机不会认为你正在向你的主元素添加一个新的子元素,所以它会转义它(稍后解释)

我发布的代码调用XElement.Parse(string),它将获取您的序列化 xml 字符串,并尝试从中生成一个有效值XElement


发生的事情是这&lt;是一个转义序列<并且&gt;是一个转义序列>

<您的 XML 解析器转义的原因>是因为这些字符具有特殊含义,并且将它们包含在您的 XML 中会改变 XML 的性质。

这有点类似于换行符的转义序列\n如何,以及换行符\\的转义序列如何\



于 2012-11-08T16:17:05.163 回答