.NET怎么生成和解析XML文件

.NET中生成和解析XML常用XmlDocument、XDocument和XmlSerializer。XmlDocument基于DOM,适合复杂结构和频繁修改;XDocument为LINQ to XML,语法简洁,推荐新项目使用;XmlSerializer用于对象序列化,适合类与XML互转。根据需求选择:灵活操作选XDocument,对象映射用XmlSerializer,兼容旧项目用XmlDocument。

.net怎么生成和解析xml文件

.NET 提供了多种方式来生成和解析 XML 文件,最常用的是 XmlDocumentXDocument(LINQ to XML)XmlSerializer。下面分别介绍这三种方法的使用场景和代码示例。

使用 XmlDocument 生成和解析 XML

XmlDocument 是基于 DOM 的类,适合处理结构较复杂或需要频繁修改的 XML 文档。

生成 XML 示例:

XmlDocument doc = new XmlDocument();XmlElement root = doc.CreateElement("Books");doc.AppendChild(root);

XmlElement book = doc.CreateElement("Book");book.SetAttribute("Id", "1");

XmlElement title = doc.CreateElement("Title");title.InnerText = "C# 入门";book.AppendChild(title);

root.AppendChild(book);doc.Save("books.xml"); // 保存到文件

解析 XML 示例:

XmlDocument doc = new XmlDocument();doc.Load("books.xml");

XmlNodeList books = doc.SelectNodes("//Book");foreach (XmlNode book in books){string id = book.Attributes["Id"]?.Value;string title = book["Title"]?.InnerText;Console.WriteLine($"ID: {id}, Title: {title}");}

使用 LINQ to XML(XDocument)操作 XML

XDocument 是 .NET 3.5 引入的现代 API,语法更简洁,推荐用于新项目。

生成 XML 示例:

XDocument doc = new XDocument(    new XElement("Books",        new XElement("Book",            new XAttribute("Id", "1"),            new XElement("Title", "C# 入门")        )    ));doc.Save("books.xml");

解析 XML 示例:

XDocument doc = XDocument.Load("books.xml");var books = doc.Descendants("Book");foreach (var book in books){    string id = book.Attribute("Id")?.Value;    string title = book.Element("Title")?.Value;    Console.WriteLine($"ID: {id}, Title: {title}");}

使用 XmlSerializer 序列化和反序列化对象

当你有现成的类结构,想直接转成 XML 或从 XML 还原对象时,XmlSerializer 是最佳选择。

定义类:

[Serializable]public class Book{    [XmlAttribute("Id")]    public int Id { get; set; }
public string Title { get; set; }

}

[Serializable][XmlRoot("Books")]public class BookList{[XmlElement("Book")]public List Books { get; set; } = new List();}

序列化为 XML:

BookList list = new BookList();list.Books.Add(new Book { Id = 1, Title = "C# 入门" });

XmlSerializer serializer = new XmlSerializer(typeof(BookList));using (StreamWriter writer = new StreamWriter("books.xml")){serializer.Serialize(writer, list);}

从 XML 反序列化:

XmlSerializer serializer = new XmlSerializer(typeof(BookList));using (StreamReader reader = new StreamReader("books.xml")){    BookList list = (BookList)serializer.Deserialize(reader);    foreach (var book in list.Books)    {        Console.WriteLine($"ID: {book.Id}, Title: {book.Title}");    }}

基本上就这些。根据你的需求选择合适的方式:操作灵活用 XDocument,处理对象映射用 XmlSerializer,老项目兼容可用 XmlDocument。不复杂但容易忽略命名空间和异常处理。

以上就是.NET怎么生成和解析XML文件的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1441444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 18:05:08
下一篇 2025年12月17日 18:05:20

相关推荐

发表回复

登录后才能评论
关注微信