如何使用xml文件,在更新它时,保存注释行后仍然会出现。
以下是我保存文件的代码段:
public static void WriteSettings(Settings settings, string path)
{
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
TextWriter writer = new StreamWriter(path);
serializer.Serialize(writer, settings);
writer.Close();
}
答案 0 :(得分:3)
我不确定我理解你的要求。我想说不要使用XmlSerializer,因为它是为XML格式创建对象的序列化版本而设计的。对象中没有XML注释,因此为该对象生成的XML不会生成任何注释。如果您想处理纯XML,只需使用一个简单的XML解析类,而不是用于将类序列化为XML文档的类:
string myXml =
"<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + Environment.NewLine +
"<!-- This is a comment -->" + Environment.NewLine +
"<Root><Data>Test</Data></Root>";
System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
xml.PreserveWhitespace = true;
xml.LoadXml(myXml);
var newElem = xml.CreateElement("Data");
newElem.InnerText = "Test 2";
xml.SelectSingleNode("/Root").AppendChild(newElem);
System.Xml.XmlWriterSettings xws = new System.Xml.XmlWriterSettings();
xws.Indent = true;
using (System.Xml.XmlWriter xw = System.Xml.XmlWriter.Create(Console.Out, xws))
{
xml.WriteTo(xw);
}
答案 1 :(得分:0)
此代码将完全覆盖xml文件。为了在现有文件中保留注释,您必须先阅读它,然后更新并保存。