C# .NET Core中如何操作xml文件

推荐使用XDocument进行XML操作,它支持LINQ to XML,适用于大多数场景;读取时可加载文件并解析元素,创建时可通过XElement构建结构并保存;修改时可增删改节点后保存;对于大文件则推荐XmlReader和XmlWriter以提升性能;注意文件路径配置确保正确访问。

c# .net core中如何操作xml文件

在C# .NET Core中操作XML文件非常常见,主要用于配置读取、数据交换或持久化存储。.NET Core 提供了多种方式来读取、创建、修改和保存XML文件,主要依赖于 System.Xml 命名空间下的类,如 XDocumentXmlDocumentXmlReaderXmlWriter。下面介绍几种常用且推荐的方式。

使用 XDocument(推荐,LINQ to XML)

XDocument 是 LINQ to XML 的核心类之一,语法简洁,支持链式操作,适合大多数场景。

读取XML文件:

假设有一个名为 data.xml 的文件:

      C# 入门经典    张三        ASP.NET Core 开发实战    李四  

使用 XDocument 读取内容:

using System;using System.Linq;using System.Xml.Linq;

var doc = XDocument.Load("data.xml");

var books = doc.Root.Elements("Book").Select(b => new{Id = b.Attribute("Id")?.Value,Title = b.Element("Title")?.Value,Author = b.Element("Author")?.Value});

foreach (var book in books){Console.WriteLine($"ID: {book.Id}, 标题: {book.Title}, 作者: {book.Author}");}

创建并保存XML文件:

var newDoc = new XDocument(    new XElement("Books",        new XElement("Book", new XAttribute("Id", "3"),            new XElement("Title", "深入理解.NET"),            new XElement("Author", "王五")        )    ));

newDoc.Save("new_books.xml");

修改现有XML文件

可以加载已有XML,添加、修改或删除节点。

var doc = XDocument.Load("data.xml");

// 添加新书doc.Root.Add(new XElement("Book", new XAttribute("Id", "4"),new XElement("Title", "Entity Framework 教程"),new XElement("Author", "赵六")));

// 修改某本书的作者var bookToUpdate = doc.Root.Elements("Book").FirstOrDefault(b => b.Attribute("Id")?.Value == "1");if (bookToUpdate != null){bookToUpdate.Element("Author").Value = "张更新";}

// 删除某本书var bookToDelete = doc.Root.Elements("Book").FirstOrDefault(b => b.Attribute("Id")?.Value == "2");bookToDelete?.Remove();

doc.Save("data.xml"); // 保存更改

使用 XmlReader 高效读取大文件

当处理大型XML文件时,XDocument 会将整个文档加载到内存,可能影响性能。XmlReader 提供只进、只读的流式读取方式,更节省资源。

using System.Xml;

using var reader = XmlReader.Create("data.xml");

while (reader.Read()){if (reader.NodeType == XmlNodeType.Element && reader.Name == "Title"){reader.Read();Console.WriteLine("书名: " + reader.Value);}}

使用 XmlWriter 写入大文件或流

与 XmlReader 对应,XmlWriter 适合高效写入大量数据。

using System.Xml;

var settings = new XmlWriterSettings{Indent = true,Encoding = System.Text.Encoding.UTF8};

using var writer = XmlWriter.Create("large_output.xml", settings);

writer.WriteStartDocument();writer.WriteStartElement("Items");

for (int i = 1; i <= 1000; i++){writer.WriteStartElement("Item");writer.WriteAttributeString("Id", i.ToString());writer.WriteString($"内容{i}");writer.WriteEndElement();}

writer.WriteEndElement();writer.WriteEndDocument();

基本上就这些。对于常规操作,推荐使用 XDocument,它简洁易用;处理大文件时改用 XmlReader/XmlWriter 更合适。注意路径问题:在 .NET Core 中确保 XML 文件被复制到输出目录,或使用绝对路径/相对路径正确指向文件位置。

以上就是C# .NET Core中如何操作xml文件的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 17:43:22
下一篇 2025年12月17日 17:43:44

相关推荐

发表回复

登录后才能评论
关注微信