[英]C# XML Insert comment into XML after xml tag
我正在使用C#對象來序列化/反序列化XML。
我希望在序列化時為XML文件添加注釋,這個注釋將是標准xml標簽<?xml version="1.0" encoding="UTF-8"?>
之后的基本<!-- comment -->
<?xml version="1.0" encoding="UTF-8"?>
此注釋不需要反序列化,它是一個基本注釋,用於指示創建xml文件的產品和版本。
您可以使用CreateWriter直接序列化到新的XDocument :
XDocument document = new XDocument();
document.Add(new XComment("Product XY Version 1.0.0.0"));
using (XmlWriter writer = document.CreateWriter())
{
serializer.WriteObject(writer, graph);
}
document.Save(Console.Out);
或者,您也可以序列化到任何其他XmlWriter :
using (XmlWriter writer = XmlWriter.Create(Console.Out))
{
writer.WriteStartDocument();
writer.WriteComment("Product XY Version 1.0.0.0");
serializer.WriteObject(writer, graph);
writer.WriteEndDocument();
}
將其序列化為XML,將該XML作為XDocument
(或任何您想要的API)加載,插入注釋,再次保存。 簡單,並且應該使用您想要使用的任何API。 您可以使用MemoryStream
作為臨時存儲在內存中完成所有操作。
可能有一種方法可以直接序列化到新的XDocument
/ XmlDocument
,但我不知道它。
我相信你可以在你的對象上實現IXMLSeriablizable。 如果我沒記錯的話,序列化/反序列化時會自動調用該接口的ReadXML(XmlReader reader)和WriteXML(XmlWriter writer)(CreateSchema,或者不需要實現第三種方法)。
實現它的警告是,您現在可能需要在所有相關的嵌套對象上實現它。 (即,如果您有一個包含User對象的Department對象,並且您希望對Departments進行注釋,則需要在Department和User上實現IXmlSeriablizable)。 此外,由於您直接管理序列化,如果向類添加新屬性,則需要手動修改IXmlSerializable方法。
我通常在我的對象上實現IXmlSerializable,因為我喜歡直接控制序列化的內容和方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.