我在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><xpto>3<</MenuItem>
答案 0 :(得分: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)
,它将使用您的seralized xml字符串,并尝试从中生成有效的XElement
。
<
是<
的转义序列,而>
>
是<
的转义序列。
您的XML解析器转义>
和\n
的原因是因为这些字符具有特殊含义,并且在XML中包含它们会改变XML的性质。
有点类似于\\
是换行符的转义序列,以及\
如何成为{{1}}的转义序列