C# 关于XML遍历新增节点,修改属性小例
来源:互联网 发布:矩阵制结构图 编辑:程序博客网 时间:2024/06/16 17:44
XML样例:
测试代码:<?xml version="1.0" encoding="gb2312"?><bookstore> <book genre="李2红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </book> <book genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>小六</author> <price>58.3</price> </book> <book45 genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>大黄</author> <price>58.3</price> </book45></bookstore>
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("E:\\bookstore.xml"); //获取bookstore节点的所有子节点 XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes; for (int i = 0; i < nodeList.Count; i++)//遍历每个book节点 { //将子节点类型转换为XmlElement类型 XmlElement xe = (XmlElement)nodeList.Item(i); if (xe.Name == "book") { //如果genre属性值为“李赞红” if (xe.GetAttribute("genre") == "李赞红") { //继续获取xe子节点的所有子节点 XmlNodeList nls = xe.ChildNodes; for (int j = 0; j < nls.Count; j++) { XmlElement xe2 = (XmlElement)nls.Item(j);//转换类型 //title、author、price都会在xe2.Name中取到 if (xe2.Name == "author")//如果找到 { xe2.InnerText = "Karli Waston";//则修改 } else //如果不存在则新建 { xe2.SetAttribute("NewAttribute", "新增属性"); } } } else { //如果genre属性值不为“李赞红”,则修改为李赞红 xe.SetAttribute("genre", "李赞红"); } } else //如果不存在book节点,则在该节点下新增一个book下级节点 { XmlElement subElement = xmlDoc.CreateElement("因为这个节点不是book"); subElement.InnerXml = "BigDog"; xe.AppendChild(subElement); } } xmlDoc.Save("E:\\bookstore.xml");//保存。
修改后的XML:
<?xml version="1.0" encoding="gb2312"?><bookstore> <book genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </book> <book genre="李赞红" ISBN="2-3631-4"> <title NewAttribute="新增属性">CS从入门到精通</title> <author>Karli Waston</author> <price NewAttribute="新增属性">58.3</price> </book> <book45 genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>大黄</author> <price>58.3</price> <因为这个节点不是book>BigDog</因为这个节点不是book> </book45></bookstore>如果现在根节点下新增某个节点,代码如下:
XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("E:\\bookstore.xml");XmlNode root = xmlDoc.DocumentElement;XmlElement subElement = xmlDoc.CreateElement("根节点下新增");subElement.InnerXml = "BigDog";root.AppendChild(subElement);
0 0
- C# 关于XML遍历新增节点,修改属性小例
- 【C#】C#操作XML方法:新增、修改和删除节点与属性
- C#操作XML方法:新增、修改和删除节点与属性
- C# 生成xml文件,新增,修改,删除节点
- .NET修改XML节点属性
- c#获取以及新增带命名空间的xml节点小例子
- C# 遍历 XML文件 节点 net XML节点 遍历
- 详解SimpleXML添加_修改_删除_遍历XML节点属性
- 详解SimpleXML添加_修改_删除_遍历XML节点属性
- 遍历有属性节点的XML文件
- jQuery 1.5 xml 遍历所有节点属性
- C# XML 添加,修改,删除Xml节点
- C# XML 添加,修改,删除Xml节点
- C# XML 添加,修改,删除Xml节点
- C# 遍历XML节点到TreeView
- sql遍历xml,遍历节点并遍历节点值,xm节点属性数据转换成表
- XML修改节点属性及写入文件
- 修改xml文件的节点属性
- Dev中的repositoryItemButtonEdit控件,双击没反应
- XML 增、删、改
- C# Xml 移除指定节点
- 事的预见性
- 解决远程桌面无法全屏的方法
- C# 关于XML遍历新增节点,修改属性小例
- Notepad++ 实用插件安装
- Xml 常用属性、方法
- Xml SelectNodes 与 XPath
- 在VS2012中编译C语言程序
- 隐藏GridControl的“Drag a column header here to group by that column”
- 怎么下载保存网页
- 正则表达式基础语法
- 正则表达式Regex类常用方法