C# &;燃气轮机及;lt而不是>;及<;对于XmlWriter.writeElementString

C# &;燃气轮机及;lt而不是>;及<;对于XmlWriter.writeElementString,c#,xml,C#,Xml,我有上述情况。一切正常,但writer.WriteAttributeString(“mailBody”,mail.BodyText)给出了一个问题。mail.BodyText是一个字符串,内容中有。当xml写入文件时,我看到的是>和<。我不想要这个加密机版本。如何解决它?这不是“加密版本”,而是符合标准的版本。XML禁止发布解决方案供将来参考 要分别生成字符而不是和,需要使用WriteRaw()方法 这是执行情况 writer.WriteStartElement("mailBody");

我有上述情况。一切正常,但
writer.WriteAttributeString(“mailBody”,mail.BodyText)给出了一个问题。
mail.BodyText
是一个字符串,内容中有。当xml写入文件时,我看到的是>和<。我不想要这个加密机版本。如何解决它?

这不是“加密版本”,而是符合标准的版本。XML禁止发布解决方案供将来参考

要分别生成
字符而不是
,需要使用
WriteRaw()
方法

这是执行情况

writer.WriteStartElement("mailBody");
writer.WriteCData(mail.BodyText);
writer.WriteEndElement();
w.writeStarteElement(“myRoot”);

w、 作家("这不是加密程序,这是xml规范。像
<>&
这样的字符是xml中的特殊字符,必须转义。xml反序列化程序应该能够正确处理它。您不应该这样做,因为像
这样的东西不是有效的xml。没有什么需要解决的。这是正确的行为。请参阅:请记住,当您d使用任何XML读取器再次从XML文件中读取数据,您将获得原始的
&
字符。我获得![CDATA[]在xml中,有没有办法消除它?@Goodie为什么?你不能将
嵌入有效的xml文本或属性中。如果你想生成无效的xml,你必须将xml生成为字符串,而不是使用
XmlWriter
,因为它会阻止你做会导致无效xml的事情。请注意因此,您将无法使用stanrdad XML读取器读取无效的XML。@Goodie您无法清除
CDATA
部分周围的
markup。在有效的XML中,您可以在文本周围有
CDATA
,或者在文本内部有
。@Goodie您到底要用该XML做什么?阅读它?它是主要的y供机器使用,而不是供人类使用。现在您生成了无效的XML。这有什么帮助?我正在使用XML将数据导入数据库表。这个无效的XML对我有用。我不必在任何地方发布它。当我需要将原始XML字符串作为有效的XML而不是字符串插入XML编写器时,这很有帮助。是的,它可以es允许生成无效的xml,但如果将有效的xml插入到“WriteRaw”语句中,它就会起作用。
writer.WriteStartElement("mailBody");
writer.WriteCData(mail.BodyText);
writer.WriteEndElement();
w.WriteStartElement("myRoot");
w.WriteRaw("<");
w.WriteEndElement();
<myRoot><</myRoot>