C#怎么创建XML文档 XmlDocument使用方法

18次阅读

xmlDocument 是 C# 中基于 dom 模型操作 XML 的核心类,支持创建、修改、保存和查询;需手动添加声明与根节点,通过 CreateElement/appendChild 构建结构,用 SetAttribute 添加属性,Save/Load 实现持久化,XPath 提供精准节点定位。

C#怎么创建XML文档 XmlDocument使用方法

XmlDocument 是 C# 中用于创建、读取、修改和保存 XML 文档的核心类,属于 System.Xml 命名空间。它基于 DOM(文档对象模型),把整个 XML 加载到内存中,适合对 XML 进行随机访问和频繁修改的场景。

创建空的 XmlDocument 并添加根节点

新建一个 XmlDocument 实例后,需手动创建声明和根元素才能构成合法 XML:

  • 调用 CreateXmlDeclaration("1.0", "utf-8", NULL) 创建 XML 声明
  • CreateElement("根标签名") 创建根节点
  • AppendChild() 依次追加声明和根节点

示例代码:

XmlDocument doc = new XmlDocument(); XmlDeclaration decl = doc.CreateXmlDeclaration("1.0", "utf-8", null); XmlElement root = doc.CreateElement("Books"); doc.AppendChild(decl); doc.AppendChild(root);

向 XML 中添加子节点和属性

在已有节点上可继续添加子元素、文本内容或属性:

  • CreateElement() 创建新元素,再用 AppendChild() 添加进父节点
  • CreateTextnode("内容") 创建文本节点并附加到元素下(实现“元素内容”)
  • CreateAttribute("name") 创建属性,设置 Value 后通过 SetAttributeNode() 或直接用 SetAttribute("name", "value")

例如为 Book 添加带 ID 属性和 Title 子节点:

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

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

root.AppendChild(book);

保存和加载 XML 文档

生成好结构后,用 Save() 方法写入文件或流;加载已有 XML 则用 Load()LoadXml()

  • doc.Save("books.xml") —— 直接保存到文件(自动编码为 UTF-8)
  • doc.Load("books.xml") —— 从文件加载完整 XML
  • doc.LoadXml("Hello") —— 从字符串加载

查找和修改已有节点

常用查询方式有 GetElementsByTagName()SelectNodes()/SelectSingleNode()(支持 XPath):

  • XmlNodeList books = doc.GetElementsByTagName("Book"); —— 获取所有 Book 元素
  • XmlNode firstTitle = doc.SelectSingleNode("//Book/Title"); —— 用 XPath 查找第一个 Title
  • 修改节点内容:firstTitle.InnerText = "新标题";
  • 删除节点:firstTitle.ParentNode.RemoveChild(firstTitle);

注意:使用 XPath 需确保已引入 System.Xml.XPath,且文档结构清晰时推荐 XPath 提高定位精度。不复杂但容易忽略编码与节点层级关系。

text=ZqhQzanResources