C# 操作XML

https://blog.csdn.net/2609_95039045/article/details/157469812?fromshare=blogdetail&sharetype=blogdetail&sharerId=157469812&sharerefer=PC&sharesource=m0_68206177&sharefrom=from_link

这个写的好 https://blog.csdn.net/lizhenxiqnmlgb/article/details/90518571?fromshare=blogdetail&sharetype=blogdetail&sharerId=90518571&sharerefer=PC&sharesource=m0_68206177&sharefrom=from_link

cs 复制代码
 
    //所需要添加的命名空间
    using System.Xml;
    //初始化一个xml实例
    XmlDocument xml=new XmlDocument();
    //导入指定xml文件
    xml.Load("xml文件路径path");
    //指定一个节点
    XmlNode root=xml.SelectSingleNode("节点名称");
    //获取节点下所有直接子节点
    XmlNodeList childlist=root.ChildNodes;
    //判断该节点下是否有子节点
    root.HasChildNodes;
    //获取同名同级节点集合
    XmlNodeList nodelist=xml.SelectNodes("节点名称");
    //生成一个新节点
    XmlElement node=xml.CreateElement("节点名称");
    //将节点加到指定节点下,作为其子节点
    root.AppendChild(node);
    //将节点加到指定节点下某个子节点前
    root.InsertBefore(node,root.ChildeNodes[i]);
    //为指定节点的新建属性并赋值
    node.SetAttribute("id","11111");
    //为指定节点添加子节点
    root.AppendChild(node);
    //获取指定节点的指定属性值
    string id=node.Attributes["id"].Value;
    //获取指定节点中的文本
    string content=node.InnerText;
    //保存XML文件
    xml.Save("xml文件存储的路径path");
cs 复制代码
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("book.xml");

XmlElement newBook = xmlDoc.CreateElement("Book");
newBook.SetAttribute("Id", "3");
newBook.SetAttribute("LibName", "xinhua");
newBook.SetAttribute("Price", "100");
var titleElem = xmlDoc.CreateElement("Title");
titleElem.InnerText = "Pro C#";
newBook.AppendChild(titleElem);
xmlDoc.DocumentElement?.AppendChild(newBook);

xmlDoc.Save("book.xml");

结果:

XML 复制代码
源文件:
<?xml version="1.0" encoding="utf-8" ?>
<Root>
	<Configure1>

	</Configure1>
</Root>

执行后:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
    <Configure1> 
    </Configure1>
    <Book Price="100" LibName="xinhua" Id="3">
        <Title>Pro C#</Title>
    </Book>
</Root>

cs 复制代码
// 1. 先找到 <books> 节点
XmlNode booksNode = xmlDoc.SelectSingleNode("//books");

if (booksNode != null)
{
    // 2. 从 books 里找:id=3 并且 name=xiyouji 的 book
    XmlNode targetBook = booksNode.SelectSingleNode("book[@id='3' and name='xiyouji']");

    if (targetBook != null)
    {
        // 找到了
    }
}
相关推荐
胡萝卜术10 小时前
从API调用到手写LRU:力扣146「LRU缓存」的哈希表+双向链表终极进化之路
前端·javascript·面试
科技道人10 小时前
记录 默认置灰/禁用 app ‘Search Engine Selector‘ 的disable按钮
开发语言·前端·javascript
天疆说11 小时前
Zotero Connector 在 Edge 里找不到桌面 Zotero(Linux / Zotero 9.0.6 / Edge 150)
linux·前端·edge
李伟_Li慢慢12 小时前
02-从硬件说起WebGL
前端·three.js
逝水无殇13 小时前
C# 异常处理详解
开发语言·后端·c#
kyriewen13 小时前
看了微软几万人用AI编程的数据——效率涨24%的代价没人提
前端·ai编程·claude
2601_9637713713 小时前
How to Scale Your WordPress Store Traffic in 2026
前端·php·plugin
亿元程序员13 小时前
老板说我的3D箭头游戏用来做试玩太普通了,没人想玩,让我变点花样...
前端
李伟_Li慢慢14 小时前
01-threejs架构原理-课程简介
前端·three.js
玖玥拾14 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#