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)
    {
        // 找到了
    }
}
相关推荐
存在的五月雨2 小时前
Nodejs的一些
前端
l14372332672 小时前
短剧出海翻译工具测评:同一段素材实测对比
大数据·前端·人工智能
小马_xiaoen2 小时前
Vue 3 + TS 实战:手写 v-no-emoji 自定义指令,彻底禁止输入框表情符号!
前端·javascript·vue.js
文心快码BaiduComate2 小时前
有奖征集|解锁Comate超能力:一文玩转Comate Skills
前端·后端
小码哥_常2 小时前
Android 集合探秘:ArrayMap 与 SparseArray 的奇妙之旅
前端
林九生2 小时前
【Flutter】Flutter 拍照/相册选择后无法显示对话框问题解决方案
前端·javascript·flutter
程序员小寒2 小时前
JavaScript设计模式(四):发布-订阅模式实现与应用
开发语言·前端·javascript·设计模式
Highcharts.js2 小时前
Highcharts Gantt 实战:从框架集成到高级功能应用-打造现代化、交互式项目进度管理图表
前端·javascript·vue.js·信息可视化·免费
程序猿的程2 小时前
把股票数据能力接进 AI:stock-sdk-mcp 的实践整理
前端·javascript·node.js