C# 关于XML遍历新增节点,修改属性小例

简介: XML样例: <?xml version="1.0" encoding="gb2312"?><bookstore> <book genre="李2红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author>
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);



相关文章
|
28天前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
89 12
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
3月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
217 5
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
3月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
192 4
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
121 4
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
3月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
99 1
|
5月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)

相关课程

更多