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)
    {
        // 找到了
    }
}
相关推荐
LinXunFeng3 小时前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
乘风gg7 小时前
为什么AI 时代来临,大部分人吃不到红利
前端·ai编程·claude
恋猫de小郭7 小时前
Android 限制侧载新进展,谷歌联合国内厂商推验证计划
android·前端·flutter
IT_陈寒7 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
恋猫de小郭7 小时前
解读 Android 17 全新内存限制,有没有“豁免”后门?
android·前端·flutter
Hyyy9 小时前
理解LLM的基本工作原理:预训练、微调、推理的区别
前端
Gatlin9 小时前
前端逆向与反逆向:一场猫鼠游戏的底层逻辑与实战
前端
Pedantic9 小时前
本地通知(Local Notifications)学习笔记
前端
森蓝情丶10 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
爱勇宝10 小时前
干了近 8 年,一夜之间被裁:AI 时代,程序员最该害怕的不是 AI
前端·后端·程序员