C#中操作XML (修改完整版)

C# XML编程全攻略:深度解析创建、读取、更新与删除操作 在C#中,XML文件常被用于存储配置数据、交换数据或作为轻量级的数据持久化方案。以下是关于C#中如何使用XML文件的详细说明,包括创建、读取、更新和删除XML数据的代码示例,以及详尽的注释解释。 阅读详情

本人也是初学XML网上找个基本例子,
但是运行有写错误,现自己修改后把代码贴上来,让同是初学者参考 
1.新建一个XML文件(bookstore.xml)如下:

<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  
<book genre="fantasy" ISBN="2-3631-4">
    
<title>Oberon's Legacy</title>
    
<author>Corets, Eva</author>
    
<price>5.95</price>
  
</book>
</bookstore>


2.以下是我建立的一个网站前台页面为几个Button操作

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="增加" />
        
<asp:Button ID="Button2" runat="server" Text="修改" OnClick="Button2_Click" />
        
<asp:Button ID="Button3" runat="server" Text="删除" OnClick="Button3_Click" />
        
<asp:Button ID="Button4" runat="server" OnClick="Button4_Click" Text="显示" /></div>
    
</form>
</body>
</html>

2.后台代码(这里是已经修改调试成功)
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;

public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }

    
protected void Button1_Click(object sender, EventArgs e)
    
{  //往<bookstore>节点中插入一个<book>节点
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath(
"bookstore.xml"));
        XmlNode root 
= xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
        XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个<book>节点
        xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性
        xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性

        XmlElement xesub1 
= xmlDoc.CreateElement("title");
        xesub1.InnerText 
= "CS从入门到精通";//设置文本节点
        xe1.AppendChild(xesub1);//添加到<book>节点中
        XmlElement xesub2 = xmlDoc.CreateElement("author");
        xesub2.InnerText 
= "候捷";
        xe1.AppendChild(xesub2);
        XmlElement xesub3 
= xmlDoc.CreateElement("price");
        xesub3.InnerText 
= "58.3";
        xe1.AppendChild(xesub3);

        root.AppendChild(xe1);
//添加到<bookstore>节点中
       
// xmlDoc.Save("bookstore.xml");
        xmlDoc.Save(Server.MapPath("bookstore.xml"));
    }

    
protected void Button2_Click(object sender, EventArgs e)
    
{
        
//修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
        XmlDocument xmlDoc = new XmlDocument();//修改添加的一行
        xmlDoc.Load(Server.MapPath("bookstore.xml"));//修改添加的一行
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
        foreach (XmlNode xn in nodeList)//遍历所有子节点
        {
            XmlElement xe 
= (XmlElement)xn;//将子节点类型转换为XmlElement类型
            if (xe.GetAttribute("genre") == "李赞红")//如果genre属性值为“李赞红”
            {
                xe.SetAttribute(
"genre", "update李赞红");//则修改该属性为“update李赞红”

                XmlNodeList nls 
= xe.ChildNodes;//继续获取xe子节点的所有子节点
                foreach (XmlNode xn1 in nls)//遍历
                {
                    XmlElement xe2 
= (XmlElement)xn1;//转换类型
                    if (xe2.Name == "author")//如果找到
                    {
                        xe2.InnerText 
= "亚胜";//则修改
                        break;//找到退出来就可以了
                    }

                }

                
break;
            }

        }

        xmlDoc.Save(Server.MapPath(
"bookstore.xml"));//保存。

    }

    
    
protected void Button3_Click(object sender, EventArgs e)
    
{
        
//删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。
        XmlDocument xmlDoc = new XmlDocument();//修改添加的一行
        xmlDoc.Load(Server.MapPath("bookstore.xml"));//修改添加的一行
        XmlNodeList xnl = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
        
foreach (XmlNode xn in xnl)
        
{
            XmlElement xe 
= (XmlElement)xn;
            
if (xe.GetAttribute("genre") == "fantasy")
            
{
                xe.RemoveAttribute(
"genre");//删除genre属性
            }

            
else if (xe.GetAttribute("genre") == "update李赞红")
            
{
                xe.RemoveAll();
//删除该节点的全部内容
            }

        }

        xmlDoc.Save(Server.MapPath(
"bookstore.xml"));//保存。
    }

    
protected void Button4_Click(object sender, EventArgs e)
    
{
        XmlDocument xmlDoc 
= new XmlDocument();//修改添加的一行
        xmlDoc.Load(Server.MapPath("bookstore.xml"));//修改添加的一行
        XmlNode xn = xmlDoc.SelectSingleNode("bookstore");
        XmlNodeList xnl 
= xn.ChildNodes;

        
foreach (XmlNode xnf in xnl)
        
{
            XmlElement xe 
= (XmlElement)xnf;
            Console.WriteLine(xe.GetAttribute(
"genre"));//显示属性值
            Console.WriteLine(xe.GetAttribute("ISBN"));

            XmlNodeList xnf1 
= xe.ChildNodes;
            
foreach (XmlNode xn2 in xnf1)
            
{
                Console.WriteLine(xn2.InnerText);
//显示子节点点文本
                Response.Write(xn2.InnerText);//查看用的
            }

        }

    }

}

精通C#操作XML:读取、写入及修改指南 可扩展标记语言(Extensible Markup Language,XML)是一种用于存储和传输数据的标记语言,广泛应用于数据交换。XML允许开发者定义自己的标签,使得数据结构化、清晰,易于理解和处理。在C#中处理XML,允许开发者轻松地集成XML数据到应用程序中,无论是用于配置数据、数据交换还是数据存储等。System.Xml命名空间是.NET Framework中用于处理XML文档的核心集合,提供了丰富的API来执行各种XML相关的任务。 阅读详情

相关推荐

ROS专栏—基于STM32F103的INA219电源数据采集

文章主要记录了stm32f103对ina219的数据采集

热爱生活、奋斗前行 2353

XML C#增删改查

XML C#增删改查

againknow的博客 1137

机械臂 关节电机选型计算

电机 机械臂

hisen92的专栏 8982

详解C#操作XML的方法总结

【注2:我们在创建节点的时候用的是XmlElement,但是读取节点信息的时候却用的是XmlNode,这里强调一点:XmlElement是XmlNode的继承,可以调用更多的方法实现相应所需的功能】至此完成了对xml文件的基本操作:创建、读取、修改、添加、删除。又怎么读取这个xml文件的节点信息,以及如何对这个xml文件的节点信息作相应的操作?【注1:想要将对xml文件所做的任何修改生效的话,必须调用Save方法,否则我们所做的修改不会保存】5.删除指定xml文件的节点信息。3.修改xml文件的节点信息。

weixin_51255495的博客 4575

OneNET物模型实战:如何用NB-IOT模块上传JSON数据并解析

本文详细介绍了如何利用NB-IOT模块将传感器数据上传至中国移动OneNET物联网平台,并利用其物模型功能实现JSON数据的自动解析。文章从理解OneNET物模型与OneJson协议入手,逐步讲解了平台侧物模型创建、设备注册,以及设备端数据构造、HEX编码与NB-IOT模块AT指令上报的全流程,并提供了关键的调试技巧与常见问题排查方法,为物联网开发者提供了完整的实战指南。

sugar的博客 680

大模型LLM部署方式

建议根据实际需求选择方案,企业级服务优先考虑vLLM或TGI,个人用户可尝试Ollama或Hugging Face本地加载。若需完整代码示例,可参考网页2的VLLM实战或网页5的TGI部署案例。:高并发、低延迟的API服务,需分布式推理支持。:快速创建可分享的Web应用。:个人开发、快速原型验证。

u010249118的博客 516

C#读、写、修改xml文件

C#读写修改xml节点

你要明白,任何问题都不是孤立存在的,一定有人曾经遇到过,并且已经有更好的解决办法了,只是我还不知道。我不应该在黑暗中独自前行,去重新发明轮子,也许我的顿悟,只是别人的基本功!我应该要站在巨人的肩膀上,学习更成熟的经验和方法,然后再来解决这个问题 1805

共享单车数据分析与需求预测项目

除了自行车共享系统的有趣的实际应用之外,这些系统生成的数据特征使它们成为研究的有吸引力的对象。由于这些系统在交通、环境和健康问题中的重要作用,它们引起了极大的关注。Huber 回归器:一个对异常值具有鲁棒性的模型,CV 得分为 0.4660,表明它对此数据集可能不那么有效。代码中的内容cv_score就像您正在使用的机器学习模型的成绩单。它告诉您模型的表现如何。减少异常值的影响:它还可以减少异常值的影响,因为对数转换显着缩小了数据的范围。因此,cv_score平均分数表明您的模型的预测效果如何。

极光喵的博客 2946

C# XML文件的创建、读写、修改

XML文件的创建、读写和修改

qq_27474555的博客 1636

电机驱动器MP6540H应用设计

/ ... 其他初始化函数(SystemClock_Config, MX_GPIO_Init, MX_TIM1_Init, MX_TIM2_Init)需要你根据STM32CubeMX生成或手动编写。// 假设霍尔传感器引脚是 GPIO_PIN_8, GPIO_PIN_9, GPIO_PIN_10。// 低侧U相GPIO引脚。

zhusl6688的博客 658

【OpenClaw从入门到精通】零基础入门——OpenClaw核心概念快速理解(2026入门版)

OpenClaw是一个强大的AI代理框架,旨在构建智能化的自动化任务处理系统。随着人工智能技术的快速发展,OpenClaw为开发者和企业提供了一个完整的解决方案,用于创建能够理解、学习和执行复杂任务的智能体。本文将带领零基础的读者快速理解OpenClaw的核心概念,从基础架构到实际应用,为后续深入学习奠定坚实基础。通过本文的学习,你将掌握OpenClaw的基本原理、核心组件和快速上手方法。

一键难忘的博客 325

初学者参考C#中操作XML修改完整版

本人也是初学XML网上找个基本例子, 但是运行有写错误,现自己修改后把代码贴上来,让同是初学者参考 1.新建一个XML文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <bookstore> <book genre="fantasy" ISBN="2-3631...

weixin_33920401的博客 131

大模型部署指南:SGLang 框架

本文介绍使用 SGLang 框架部署大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1611

C#中操作XML (修改完整版) (转)

<br />1.新建一个XML文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?><br /><bookstore><br />  <book genre="fantasy" ISBN="2-3631-4"><br />    <title>Oberon's Legacy</title><br />    <author>Corets, Eva</author><br />    <price>5.95</price><br />  </b

fisea的专栏 584

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C#中操作XML (节点添加,修改,删除完整版)

创建xml http://www.cnblogs.com/bingzisky/archive/2008/08/26/1276875.html 1.新建一个XML文件(bookstore.xml)如下: &lt;?xml version="1.0" encoding="gb23...

weixin_34191845的博客 148

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# XML文件的读写操作

C# XML文件的读写操作 XML(可扩展标记语言) 定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 一、创建xml文件 private void Creat() { XmlTextWriter writer = new XmlTextWriter("xmlTest.xml", System.Text.Encoding.UTF8); //使用自动缩进便于阅读

韬光养晦 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C#操作XML小结

一、简单介绍using System.Xml;//初始化一个xml实例XmlDocument xml=new XmlDocument();//导入指定xml文件xml.Load(path);xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));//指定一个节点XmlNode root=xml.Selec

祈离的专栏 9万+

C# 操作xml(新建,添加,修改,删除)

C# 操作xml(新建,添加,修改,删除)

我的地盘 2084

用C#操作XML

用C#读取,添加,修改,删除XML文件内容.UserBasicInfo.xml         userGuid    jiavia    19801020    ?    a    卡卡西    男    19801020    jiavia@gmail.com    12345        zeoyeo    hhhhhhhh    147    789    963    321    1

AllenTing的专栏 2332

C#操作XML文件

在C#中XML还是常见的,而且操作简易,往往用以储存简单数据。XMl结构跟树结构类似,层层相关,利用索引找到对应节点进行增删改操作,修改访问操作也是简单上手,赶紧去尝试吧。

weixin_42314624的博客 3331

在C#中操作XML

我用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程。   已知有一个XML文件(bookstore.xml)如下:      Oberons Legacy    Corets, Eva    5.95     1、往节点中插入一个节点:   XmlDocument xmlDoc=new XmlDocument();   xml

0ffs3t 6579

C# 使用linq操作xml

一、XML基本概述 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件。

weixin_43632687的博客 3239

C# 关于对XML文件的写入读取、删除、修改操作

1、查询节点信息:       实体类成员: class user { public string name { get; set; } public int age { get; set; } public string sex { get; set; } } &...

qq_42773229的博客 1200
上一篇: ASP.NET多个用户控件回车提交表单问题解决和获取用户控件上的ID方法
下一篇: 随机查找一条记录的SQL语句
sendling
博客等级 码龄20年 36粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值