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(防止抄袭,原文地址不可删除)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试之单元测试框架

单元测试框架 一、单元测试的定义 1:什么是单元测试? 还记不记得我们软件测试学习的时候,按照定义:单元测试就是对单个模块或者是单个函数进行测试,一般是开发做的,按照阶段来分,一般就是单元…

JAVA爬虫获取1688关键词接口

以下是使用Java爬虫获取1688关键词接口的详细步骤和示例代码: 一、获取API接口访问权限 要使用1688关键词接口,首先需要获取API的使用权限,并了解接口规范。以下是获取API接口的详细步骤: 注册账号:在1688平台注册一…

【游戏设计原理】8 - 霍华德的隐匿性游戏设计法则

1. 霍华德的隐匿性游戏设计法则 霍华德的隐匿性游戏设计法则的核心思想是:“秘密的重要性与其表面上的无辜性和完整度成正比”。这意味着,当游戏开始时,设计上越是简洁、无害、直观的元素,隐藏的深层意义和转折就会显得更加震撼和…

k8s中用filebeat文件如何收集不同service的日志

以下是一个详细的从在 Kubernetes 集群中部署 Filebeat,到实现按web-oper、web-api微服务分离日志并存储到不同索引的完整方案: 理解需求:按服务分离日志索引 在 Kubernetes 集群中,有web-oper和web-api两种微服务,希…

前端退出对话框也就是点击右上角的叉,显示灰色界面,已经解决

文章目录 遇到一个前端bug,点击生成邀请码 打开对话框 然后我再点击叉号,退出对话框,虽然退出了对话框,但是显示灰色界面。如下图: 导致界面就会失效,点击任何地方都没有反应。 发现是如下代码的问题&am…

一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测

一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测 目录 一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现INFO-CNN-SVM向量加权算法优化卷积神经网络结…

【Stable Diffusion】SD安装、常用模型(checkpoint、embedding、LORA)、提示词具、常用插件

Stable Diffusion,一款强大的AI模型,让我们能够创造出惊人的艺术作品。本文将为您介绍如何安装Stable Diffusion以及深入使用的学习教程。 1. 安装Stable Diffusion (需要的小伙伴可以文末自行扫描获取) Stable Diffusion的安装可能是第一步&#xff0…

【工具变量】上市公司企业资本支出数据(1990-2022年)

一、计算方式:资本支出的公式为:经营租赁所支付的现金购建固定资产、无影资产和其他长期资产所支付的现金-处置固定资产、无形资产和其它长期资产而收回的现金净额。 二、数据范围:包括原始数据详细来源和最终数据结果 三、参考文献:[1]杨兴…

洛谷 P10483 小猫爬山 完整题解

一、题目查看 P10483 小猫爬山 - 洛谷 二、解题思路 我们将采取递归 剪枝的思想&#xff1a; sum数组存放每辆车当前载重。 每次新考虑一只小猫时&#xff0c;我们尝试把它放进每个可以放进的缆车中&#xff08;需要回溯&#xff09; for (int i 0; i < k; i) {if (sum[i]…

Leetcode二叉树部分笔记

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Leetcode二叉树部分笔记 1.二叉树的最大深度2.同样的树3.翻转二叉树4.对称二叉树**5. **填充每个节点的下一个右侧节点指针 II**6. 二叉树展开为链表7. 路经总和8.完全二叉树…

如何用状态图进行设计06

独立的控制线程 扩展状态图也提供了获取无序的输入事件的方法。这意味着一个状态开始时&#xff0c;它可能位于一个或多个控制线程的交叉点。控制行为的每个独立线程都类似一个状态机&#xff0c;独自运行&#xff0c;互不干扰。因此&#xff0c;这些控制线程可能会同时发生状…

【多模态】MiniCPM-V多模态大模型使用学习

MiniCPM-V模型使用 前言1. 模型文件下载和选择2. 环境安装配置3. 模型微调3.1 qlora微调minicpm-v-int43.2 lora微调minicpm-v3.3 merge_lora3.4 lora微调后量化int4 4. 模型推理4.1 huggingface API4.2 swift API(A) swift&#xff08;不支持batch inference&#xff09;(B) s…

快速上手Neo4j图关系数据库

参考视频&#xff1a; 【IT老齐589】快速上手Neo4j网状关系图库 1 Neo4j简介 Neo4j是一个图数据库&#xff0c;是知识图谱的基础 在Neo4j中&#xff0c;数据的基本构建块包括&#xff1a; 节点(Nodes)关系(Relationships)属性(Properties)标签(Labels) 1.1 节点(Nodes) 节点…

Transformer: Attention Is All You Need (2017) 翻译

论文&#xff1a;Attention Is All You Need 下载地址如下: download: Transformer Attention Is All you need Attention Is All You Need 中文 《Attention Is All You Need》是《Transformer》模型的开创性论文&#xff0c;提出了一种全新的基于注意力机制的架构&#xf…

可视化报表如何制作?一文详解如何用报表工具开发可视化报表

在如今这个数据驱动的商业时代&#xff0c;众多企业正如火如荼地推进数字化转型&#xff0c;力求在激烈的市场竞争中占据先机。然而&#xff0c;随着业务规模的扩大和运营复杂度的提升&#xff0c;企业的数据量爆炸式增长&#xff0c;传统报表格式单一、信息呈现密集且不易解读…

Angular由一个bug说起之十二:网页页面持续占用CPU过高

随着网络日益发达&#xff0c;网页的内容也更加丰富&#xff0c;形式也更加多样化。而随之而来的性能问题也不容小觑。这篇文章我会根据我在实践中遇到的一个问题来总结&#xff0c;我在面对性能问题的一些解决步骤&#xff0c;希望能对大家有所启发。 查找问题原因 我接触的…

MATLAB图卷积神经网络GCN处理分子数据集节点分类研究

全文链接&#xff1a;https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络&#xff08;GCN&#xff09;对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节&#xff0c;通过对分子数据集的操作实践&#xff0c;展示了完整的节点分类流程&#…

uniapp中vuex(全局共享)的应用

一、Vuex概述 1.1 官方解释 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 它采用集中式存储管理 应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化 - Vuex 也集成到 Vue 的官方调试工具 devtools extension&#xff0c;提供了诸…

华为云服务器搭建基于LNMP部署wordpress

Ubuntu系统搭建过程目录 一、检查环境1.1 检查是否安装Nginx1.2 检查是否安装Mysql1.3 检查是否安装PHP二、更新软件包以及安装所需要的依赖 三、安装Nginx3.1 下载并解压nginx3.2. 编译安装3.3 启动和停止和测试3.4 创建服务脚本3.5 Nginx目录 四、安装Mysql4.1 安全安装配置4…

ElasticSearch01-概述

零、文章目录 ElasticSearch01-概述 1、Elastic Stack &#xff08;1&#xff09;简介 官网地址&#xff1a;https://www.elastic.co/cn/ELK是一个免费开源的日志分析架构技术栈总称&#xff0c;包含三大基础组件&#xff0c;分别是Elasticsearch、Logstash、Kibana。但实际…