C# XML文件的一些操作(XmlDocument、XmlElement、XmlNode)

1. XmlDocument

XmlDocument 是 C# 中操作 XML 的核心类,相当于 内存中的 XML DOM

常用操作

  1. 加载 XML

XmlDocument doc = new XmlDocument();

doc.Load("books.xml"); // 从文件加载

// doc.LoadXml("<books>...</books>"); // 从字符串加载

  1. 保存 XML

doc.Save("books_new.xml");

  1. 获取根节点

XmlNode root = doc.DocumentElement;

Console.WriteLine(root.Name); // 输出根节点名称


2. XmlNode

XmlNode 是 XML 中的 节点抽象,可以是元素、属性、文本等。常用方法:

  • 选择节点

XmlNode node = doc.SelectSingleNode("/books/book[1]");

  • 遍历子节点

foreach (XmlNode child in root.ChildNodes)

{

    Console.WriteLine(child.Name + ": " + child.InnerText);

}

  • 获取或修改值

XmlNode firstBook = root.FirstChild;

Console.WriteLine(firstBook.InnerText);

firstBook.InnerText = "新的内容";


3. XmlElement

XmlElement 是 元素节点,继承自 XmlNode。可以操作元素本身和属性。

常用操作

  1. 创建新元素

XmlElement newBook = doc.CreateElement("book");

newBook.InnerText = "C# 入门教程";

  1. 添加属性

newBook.SetAttribute("id", "001");

  1. 添加到 XML 中

root.AppendChild(newBook);

  1. 获取属性

string id = newBook.GetAttribute("id");

Console.WriteLine(id); // 输出 001


4. 常用组合操作示例

假设 XML 文件 books.xml

<books>

  <book id="001">C# 入门</book>

  <book id="002">Java 基础</book>

</books>

添加新节点

XmlDocument doc = new XmlDocument();

doc.Load("books.xml");

XmlElement newBook = doc.CreateElement("book");

newBook.SetAttribute("id", "003");

newBook.InnerText = "Python 数据分析";

doc.DocumentElement.AppendChild(newBook);

doc.Save("books.xml");

修改节点内容

XmlNode bookNode = doc.SelectSingleNode("/books/book[@id='001']");

if(bookNode != null)

{

    bookNode.InnerText = "C# 高级教程";

}

doc.Save("books.xml");

删除节点

XmlNode bookNode = doc.SelectSingleNode("/books/book[@id='002']");

if(bookNode != null)

{

    doc.DocumentElement.RemoveChild(bookNode);

}

doc.Save("books.xml");


5. 小技巧

  1. XPath 查询SelectSingleNode 或 SelectNodes 可以快速定位节点
  2. 遍历节点ChildNodesParentNodeNextSibling 等
  3. 元素 vs 节点XmlElement 专注于元素,XmlNode 更通用(文本、注释、属性)

💡 总结关系:

XmlDocument  -> 整个 XML 文档

   └─ XmlNode -> XML 中的节点(元素、文本、属性等)

        └─ XmlElement -> 元素节点(XmlNode 子类)

C# XML文件的一些操作(XmlDocument、XmlElement、XmlNode) – 菜鸟-创作你的创作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值