如何修改C#中已反序列化XML的对象值并添加新数据?
C# 修改反序列化XML对象及添加新元素的方法
首先假设你的实体类结构如下(需与XML节点结构匹配,可能包含XML序列化特性):
public class Book { public string Title { get; set; } public string Author { get; set; } } public class FileContent { // 若XML中是<Books>包含多个<Book>节点,需对应标记特性,比如[XmlArray("Books"), XmlArrayItem("Book")] public List<Book> Books { get; set; } = new List<Book>(); }
修改现有书籍的标题
确保反序列化得到的FileContent对象及其书籍集合不为空,直接通过索引修改对应元素的属性:
// 假设已完成反序列化,得到fileContent实例 if (fileContent?.Books != null && fileContent.Books.Count > 0) { // 修改第一本书的标题 fileContent.Books[0].Title = "Billy Budd"; }
添加新书籍
实例化新的Book对象,设置属性后添加到集合中:
if (fileContent?.Books != null) { var newWarAndPeace = new Book { Title = "War and Peace", Author = "Leo Tolstoy" }; fileContent.Books.Add(newWarAndPeace); }
序列化回XML(可选)
如果需要将修改后的对象写回原XML文件,执行以下序列化操作:
using (var streamWriter = new StreamWriter("Data.xml")) { var xmlSerializer = new XmlSerializer(typeof(FileContent)); xmlSerializer.Serialize(streamWriter, fileContent); }
内容的提问来源于stack exchange,提问作者Pspl
相关产品推荐
相关产品推荐

