ASP.NET |日常开发中读写XML详解

在这里插入图片描述
在这里插入图片描述

ASP.NET |日常开发中读写XML详解

  • 前言
  • 一、XML 概述
    • 1.1 定义和结构
    • 1.2 应用场景
  • 二、读取 XML 文件
    • 2.1 使用XmlDocument类(DOM 方式)
    • 2.2 使用XmlReader类(流方式)
  • 三、写入 XML 文件
    • 3.1 使用XmlDocument类
    • 3.2 使用XmlWriter类
  • 结束语
  • 优质源码分享

ASP.NET |日常开发中读写XML详解,在ASP.NET日常开发中,XML(可扩展标记语言)是一种常用的数据交换格式,它被广泛用于配置文件、数据传输和Web服务等场景。在.NET框架中,提供了多种类和方法来读写XML数据。以下是对ASP.NET中读写XML的详解。

前言

        在数字浪潮汹涌澎湃的时代,程序开发宛如一座神秘而宏伟的魔法城堡,矗立在科技的浩瀚星空中。代码的字符,似那闪烁的星辰,按照特定的轨迹与节奏,组合、交织、碰撞,即将开启一场奇妙且充满无限可能的创造之旅。当空白的文档界面如同深邃的宇宙等待探索,程序员们则化身无畏的星辰开拓者,指尖在键盘上轻舞,准备用智慧与逻辑编织出足以改变世界运行规则的程序画卷,在 0 和 1 的二进制世界里,镌刻下属于人类创新与突破的不朽印记。

一、XML 概述

1.1 定义和结构

    XML(eXtensible Markup Language)是一种可扩展标记语言,用于存储和传输数据。它的结构类似于 HTML,但更侧重于数据的描述。

    XML 文档由元素(element)、属性(attribute)、文本(text)等组成。元素是 XML 的主要组成部分,以标签(tag)形式存在,例如和是一对标签,表示一个名为 “book” 的元素。元素可以包含其他元素、文本或属性。属性是在元素标签内定义的名称 - 值对,如中的genre就是属性,其值为fiction。

1.2 应用场景

    数据存储与交换:在不同系统之间交换数据时,XML 是一种常用的格式。例如,企业之间的电子数据交换(EDI)可能会使用 XML 来传输订单信息、库存信息等。

    配置文件:许多应用程序使用 XML 作为配置文件的格式。在ASP.NET中,web.config文件就是一个 XML 文件,用于配置应用程序的各种设置,如数据库连接字符串、身份验证模式等。

二、读取 XML 文件

2.1 使用XmlDocument类(DOM 方式)

    加载 XML 文件:XmlDocument类提供了一种文档对象模型(DOM)的方式来处理 XML。首先,需要加载 XML 文件。例如:

using System.Xml;
class Program
{
    static void Main()
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("books.xml");
        // 后续处理
    }
}

    遍历 XML 元素:可以通过XmlNode对象来遍历 XML 文档中的元素。例如,要遍历根元素下的所有子元素,可以使用以下代码:

XmlNode root = xmlDoc.DocumentElement;
foreach (XmlNode child in root.ChildNodes)
{
    if (child.NodeType == XmlNodeType.Element)
    {
        Console.WriteLine(child.Name);
    }
}

    读取元素属性和文本内容:对于包含属性和文本的元素,可以这样读取。假设 XML 中有一个元素,其中包含id属性和title文本内容:

foreach (XmlNode bookNode in root.ChildNodes)
{
    if (bookNode.NodeType == XmlNodeType.Element && bookNode.Name == "book")
    {
        string id = bookNode.Attributes["id"].Value;
        string title = bookNode.InnerText;
        Console.WriteLine($"Book ID: {id}, Title: {title}");
    }
}

2.2 使用XmlReader类(流方式)

    顺序读取 XML 内容:XmlReader类提供了一种基于流的方式来快速读取 XML 内容,适合处理大型 XML 文件。例如:

using System.Xml;
class Program
{
    static void Main()
    {
        using (XmlReader reader = XmlReader.Create("books.xml"))
        {
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element && reader.Name == "book")
                {
                    string id = reader.GetAttribute("id");
                    reader.Read(); // 移动到元素内部的文本节点
                    string title = reader.Value;
                    Console.WriteLine($"Book ID: {id}, Title: {title}");
                }
            }
        }
    }
}

    性能优势:与XmlDocument相比,XmlReader在处理大型 XML 文件时具有更好的性能,因为它不需要将整个 XML 文件加载到内存中构建 DOM 树,而是以流的方式顺序读取,占用的内存资源较少。

三、写入 XML 文件

3.1 使用XmlDocument类

    创建 XML 元素和属性:可以通过XmlDocument创建新的 XML 元素和属性。例如,创建一个新的book元素并添加到 XML 文档中:

XmlDocument newXmlDoc = new XmlDocument();
XmlElement rootElement = newXmlDoc.CreateElement("books");
newXmlDoc.AppendChild(rootElement);
XmlElement bookElement = newXmlDoc.CreateElement("book");
bookElement.SetAttribute("id", "1");
XmlElement titleElement = newXmlDoc.CreateElement("title");
titleElement.InnerText = "New Book";
bookElement.AppendChild(titleElement);
rootElement.AppendChild(bookElement);

    保存 XML 文件:使用Save方法保存 XML 文件,例如newXmlDoc.Save(“new_books.xml”);。

3.2 使用XmlWriter类

    构建 XML 结构并写入文件:XmlWriter提供了一种灵活的方式来构建和写入 XML 内容。例如:

using System.Xml;
class Program
{
    static void Main()
    {
        using (XmlWriter writer = XmlWriter.Create("new_books.xml"))
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("books");
            writer.WriteStartElement("book");
            writer.WriteAttributeString("id", "1");
            writer.WriteElementString("title", "New Book");
            writer.WriteEndElement();
            writer.WriteEndElement();
            writer.WriteEndDocument();
        }
    }
}

    格式控制:可以通过设置XmlWriterSettings来控制 XML 文件的格式,如缩进、编码等。例如:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create("new_books.xml", settings))
{
    // 写入操作
}

    这样写入的 XML 文件会有缩进,更加美观易读。

结束语

        亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

         愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

        至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


--------------- 业精于勤,荒于嬉 ---------------
 

请添加图片描述

--------------- 行成于思,毁于随 ---------------

优质源码分享

  • 【百篇源码模板】html5各行各业官网模板源码下载

  • 【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)

  • 【VUE系列】VUE3实现个人网站模板源码

  • 【HTML源码】HTML5小游戏源码

  • 【C#实战案例】C# Winform贪吃蛇小游戏源码


在这里插入图片描述


     💞 关注博主 带你实现畅游前后端

     🏰 大屏可视化 带你体验酷炫大屏

     💯 神秘个人简介 带你体验不一样得介绍

     🎀 酷炫邀请函 带你体验高大上得邀请


     ① 🉑提供云服务部署(有自己的阿里云);
     ② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
     如🈶合作请联系我,期待您的联系。
    :本文撰写于CSDN平台,作者:xcLeigh所有权归作者所有) ,https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


原文地址:https://blog.csdn.net/weixin_43151418/article/details/144309325(防止抄袭,原文地址不可删除)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/936943.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PLC6-CODESYS 的库问题:更改库版本

目录 【一】在安装SP8时NBS 3.5.8.0 依赖的TCP 3.5.8.10不能下载导致程序报错。 【二】移植codesys程序时通常会有库缺失,需要在库管理器选项卡中电机下载缺失的库,也可在报错信息处右键更新占位符 【三】低版本软件添加库需要点击添加库--高级--然后…

如何使mysql数据库ID从0开始编号——以BiCorpus为例

BiCorpus是北京语言大学韩林涛老师研制一款在线语料库网站,可以通过上传tmx文件,实现在线检索功能,程序在github上开源免费,深受广大网友的喜欢。 在使用过程中,我发现我上传的语言资产经历修改后,mysql的…

什么叫ip地址一样?网络ip地址一样说明什么

在探索网络世界的奥秘中,IP地址作为网络设备的唯一身份标识,其重要性不言而喻。然而,当我们遇到“IP地址一样”的情况时,不禁会产生诸多疑问:这究竟意味着什么?是否会对网络产生影响?虎观代理小…

【Linux基础】基本开发工具的使用

目录 一、编译器——gcc/g的使用 gcc/g的安装 gcc的安装: g的安装: gcc/g的基本使用 gcc的使用 g的使用 动态链接与静态链接 程序的翻译过程 1. 一个C/C程序的构建过程,程序从源代码到可执行文件必须经历四个阶段 2. 理解选项的含…

全栈开发:后台管理系统时代的技术破局之道

在当前的互联网发展阶段,许多二三线城市的互联网项目正在经历一个显著的转变。传统的To C项目逐渐减少,取而代之的是大量的企业级后台管理系统。在这样的背景下,全栈开发——特别是前端加Java的组合,正在成为一个备受关注的发展方…

Jmeter 性能压测-Tomcat连接数

1、影响性能的线程状态 ①BLOCKED,如果线程中有BLOCKED,就代表有阻塞情况,需要进行排查 ②TIMED_WAITING,如果线程中有TIMED_WAITING,就代表有等待的情况,要分情况来排查 系统线程在等待(如果…

SAP-ABAP开发学习-面向对象OOALV(1)

本文目录 一、概述 面向对象开发特点 二、类与对象 程序中类的创建 Class构成要素 对象 方法 一、概述 随着SAP R/3 4.0版本的开发,ABAP语言开始引入了面向对象的开发概念。这在ABAP语言的发展过程中,面向对象(Object-oriented&#…

OpenCV 功能函数介绍

一, 二值化函数 功能: 用于对图像进行二值化处理 参数: cv2.threshold(输入你的图像所对应的灰度图, 阈值:是浮点还是整数取决予图像的数据类型 最大值;高于阈值的像素值, 阈值类型:cv2.THR…

kubeadm安装K8s集群之高可用组件keepalived+nginx及kubeadm部署

系列文章目录 1.kubeadm安装K8s集群之基础环境配置 2.kubeadm安装K8s集群之高可用组件keepalivednginx及kubeadm部署 3.kubeadm安装K8s集群之master节点加入 4.kubeadm安装K8s集群之worker1节点加入 kubeadm安装K8s集群之高可用组件keepalivednginx及kubeadm部署 1.安装kubeadm…

细说STM32F407单片机SPI基础知识

目录 一、 SPI接口和通信协议 1、 SPI硬件接口 (1)MOSI(Master Output Slave Input) (2)MISO(Master Input Slave Output) (3)SCK 2、SPI传输协议 (1)CPHA0时的数据传输时序 …

【图像处理】利用numpy、opencv、python实现车牌检测

| 利用opencv实现车牌检测 整体流程涉及5个部分 图像通道转换对比度增强边缘连接二值化边界区域裁剪 图像通道转换 将RGB图像转换为HSV图像,仅保留V通道。V通道表示颜色的明暗,常用于图像对比度拉伸、直方图均衡化等流程。 原图像: V通…

结构变量的占用多少个字节

1、在linux中,这种写法比较清晰 struct gpio_led_data { u8 can_sleep; //如果定义了结构变量,则该成员占用1个字节 u8 blinking; //如果定义了结构变量,则该成员占用1个字节 }; struct gpio_leds_priv { int num_leds; //如…

[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners

本文是对 STaR 的改进方法,COLM 是 Conference On Language Models,大模型领域新出的会议,在国际上很知名,不过目前还没有被列入 ccf list(新会议一般不会列入);作者来自高校、微软研究院和 Goo…

uni-app Android平台上架要求的隐私政策提示配置方法【跨端开发系列】

文章目录 前言📖一、前言二、DCloud 数据采集说明三、配置方式3.1 HBuilderX3.2.1及以上版本配置方式3.2 HBuilderX3.2.0及以下版本配置方法3.3 模板提示框3.4 无提示框 四、离线打包配置方式五、模板提示框六、二次确认提示框七、国际化八、隐私协议内容需要注意的…

Xcode

info.plist Appearance Light 关闭黑暗模式 Bundle display name 设置app名称,默认为工程名 Location When In Use Usage Description 定位权限一共有3个key 1.Privacy - Location When In Use Usage Description 2.Privacy - Location Always and When In U…

auto-gptq安装以及不适配软硬件环境可能出现的问题及解决方式

目录 1、auto-gptq是什么?2、auto-gptq安装3、auto-gptq不正确安装可能会出现的问题(1)爆出:CUDA extension not installed.(2)没有报错但是推理速度超级慢 1、auto-gptq是什么? Auto-GPTQ 是一…

惠普Laser Jet MFP M437nda复印机成像装置严重不足及更换传输卷故障解决方法

惠普Laser Jet MFP M437nda复印机成像装置严重不足及更换传输卷故障解决方法,记录维修那点事儿,普通维修工的日常维修点滴; 惠普Laser Jet MFP M437nda复印机成像装置严重不足维修方法 如果复印及打印的效果没有问题的情况下我们也可以不更换套鼓及显影剂,那么不更换套鼓及…

【2025最新版】Stable diffusion汉化版安装教程(附SD安装包),一键激活,永久免费!

如何安装并学习使用Stable Diffusion呢? 其实,安装SD的过程并不复杂,只需按照简单的步骤操作,几分钟内就能完成安装,不论是Windows系统还是Mac系统,都能轻松应对。

【Python网络爬虫笔记】11- Xpath精准定位元素

目录 一、Xpath 在 Python 网络爬虫中的作用(一)精准定位元素(二)应对动态网页(三)数据结构化提取 二、Xpath 的常用方法(一)节点选取(二)谓词筛选&#xff0…

RabbitMQ个人理解与基本使用

目录 一. 作用: 二. RabbitMQ的5中队列模式: 1. 简单模式 2. Work模式 3. 发布/订阅模式 4. 路由模式 5. 主题模式 三. 消息持久化: 消息过期时间 ACK应答 四. 同步接收和异步接收: 应用场景 五. 基本使用 &#xff…