XML文件的读取用XmlDocument和XmlReader的比较

读取XML的方法: ReadXML 读取XML的方法 阅读详情

XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点。

 XmlTextReader textReader = new XmlTextReader("C://myXmFile.xml");
            textReader.Read();
            // 节点非空则执行循环体
            while ( textReader.Read() )
            {
            // 读取第一个元素
            textReader.MoveToElement();
            Console.WriteLine("XmlTextReader Properties Test");
            Console.WriteLine("===================");
            // 读取该元素的属性并显示在控制台中
            Console.WriteLine("Name:"+ textReader.Name);
            Console.WriteLine("Base URI:" +textReader.BaseURI);
            Console.WriteLine("Local Name:"+ textReader.LocalName);
            Console.WriteLine("Attribute Count:"+ textReader.AttributeCount.ToString());
            Console.WriteLine("Depth:"+ textReader.Depth.ToString());
            Console.WriteLine("Line Number:" +textReader.LineNumber.ToString());
            Console.WriteLine("Node Type:"+ textReader.NodeType.ToString());
            Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
            }

XmlDocument是基于树形结构的模型,数据保存于内存中,可以查找内存中数据的任何方面。占用内存大,处理方便,可读可写,几乎想当于一次把Xml读入内存.

xmldocument doc=new xmldocument();
   doc.load("config.xml");
   xmlnode xnuser=doc.selectsinglenode("userdata");
   string flag=xnuser.attributes["createuser"].innertext;

读取节点中的值
   xmldocument doc=new xmldocument();
   doc.load("config.xml");
   xmlnode xnserver = doc.selectsinglenode("userdata/dataconnection/server");

修改节点的属性
   xmldocument doc=new xmldocument();


   doc.load("config.xml");
   xmlnode xnuser=doc.selectsinglenode("userdata");
   xnuser.attributes["createuser"].innertext="false";
   doc.save("config.xml");

追加节点
   xmldocument doc = new xmldocument();
   xmltextreader reader = new xmltextreader("config.xml");
   doc.load("config.xml");
   xmlelement root = doc.documentelement; // 获取根节点
   xmlelement tagmessage = doc.createelement("net");
   xmlelement tagtext = doc.createelement("name");
   tagtext.innertext  = netname;
   tagmessage.appendchild(tagtext);   // 追加到 xml 文本的最后面
   root.appendchild(tagmessage);
   reader.close();     // 关闭 xmltextreader
   doc.save("config.xml");     // 保存 xml 文件

所以:
如果数据量极大,用XmlReader合适,
如果处理复杂频繁且文件不大,XmlDocument合适。
 

Mac安装Claude Code的3种方式及5类报错解决方案 介绍在Mac上安装Claude Code的3种实测可行方式(官方dmg、Homebrew+ARM原生构建、Docker容器化),并针对Gatekeeper签名验证失败、Rosetta 2内存对齐崩溃、Python ABI兼容性冲突等5类高频报错提供根因分析与可复现解决方案,覆盖M1–M3及Intel 阅读详情

相关推荐

【Coze 扣子案例】第 23 期・商业篇:一键获取精准商机,自动化招标信息查询与分析

通过地区和项目类型等多维度组合查询全国招标信息网数据,实现招标公告的快速定位。自动解析招标公告内容,提取关键信息,并生成结构化摘要。帮助企业高效获取精准商机,提升市场竞争力,降低人工成本,解决 “信息过载” 与 “精准匹配难” 的双重问题。

weixin_72689845的博客 1928

XmlReader简介

XmlReader简介 XmlReader允许您从流或者XML文档中访问XML数据。这个类提供了对XML数据快速、非缓存、只读、只向前的访问方式。在.NET Framework 1.x中,XmlReader是一个抽象类,其派生类通过实现其提供的方法来提供对XML数据的元素和属性的访问。但是随着.NET Framework 2.0的发布,XmlReader成为像XmlTextReader类一样的...

Prince的博客 7802

PCB板质量测试和PCB板

PCB板质量测试和板厂

weixin_51370842的博客 516

xml的四种解析器原理及性能比较

1: DOMDOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。DOM 以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以

~临风轻扬~ 2265

深圳SILAS(智能融合低空系统)无人机调度系统介绍

一、系统定位与核心目标SILAS(Smart Integrated Lower Airspace System)是深圳市为低空经济打造的“数字大脑”,由粤港澳大湾区数字经济研究院自主研发,定位为城市级低空飞行智能调度与管理平台。核心目标是解决低空经济中“高密度、高复杂度、多主体”的飞行调度难题,实现空域资源的高效分配、飞行安全的智能监管及全场景服务的无缝协同,支撑深圳从“无人机之都”向“天空之城”升级。二、核心架构:低空基础设施“四张网”设施网。

主攻大数据 人工智能 物联网 安全 低空经济等方向。mtsc 、gtest特邀分享嘉宾 3750

Realtek RTD1319D芯片解析:H.266与AV1双解码的机顶盒SoC

视频编解码技术是数字媒体传输的核心,H.266/VVC作为新一代标准,相比H.265提升50%压缩效率,显著降低带宽需求。其实现原理依赖于专用硬件解码器和并行处理架构,在超高清视频传输领域具有重要价值。Realtek RTD1319D作为首款商用H.266处理器,采用异构计算设计,集成四核ARM CPU和独立视频处理单元,同时支持AV1解码,兼顾市场兼容性。该SoC特别适合4K机顶盒、数字标牌等应用场景,其HDMI 2.1a接口和DVB解调器为超高清内容传输提供完整解决方案。开发时需注意散热设计和内存配置优

weixin_42591413的博客 673

matlab的xmlread,Matlab的xmlread函数怎么用?

XMLREADParse an XML document and return a Document Object Model node.DOMNODE = XMLREAD(FILENAME) reads a URL or file name in thestring input argument FILENAME.The function returns DOMNODE,a Docume...

weixin_36116366的博客 1007

点云配准SIFT+SI+RANSAC+ICP

Spin Image(SI)是一种用于点云数据描述的特征描述子,广泛应用于三维点云配准、识别和重建等领域。它能够捕捉点云中的局部几何信息,具有旋转不变性和部分平移不变性等优点,是一种非常强大的特征描述子。Spin Image是一种强大的点云特征描述子,具有旋转不变性、局部几何信息捕捉等优点,适用于点云配准、目标识别和三维重建等多个领域。通过合理选择局部区域、建立参考框架和计算描述子,可以充分利用Spin Image描述点云的特征,从而实现各种三维场景分析和处理任务。

点云兔子的博客 559

XmlDocument与XmlReader比较

XmlDocument与XmlReader读取Xml占用内存和速度比较示例 代码1: private voidbutton1_Click(object sender, EventArgs e) { OpenFileDialog fileDialog = new OpenFileDialog(); if (fileDialog.ShowDialog() == DialogResult.OK) {

ahaqxjl的专栏 923

Axure RP9.0 教程:左侧菜单列表导航 ( 点击父级菜单,子菜单自动收缩或展开)【响应式的菜单导航】

1. 设置目标原件时,选择切换,这样就可以实现,当原件展示时,点击自动隐藏,隐藏时自动显示; 2. 展开/收起原件(推动/拉动原件)设置为方向**向下**

专注于计算机研发知识和资讯分享 1382

UG\NX二次开发 获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态

获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态。

王牌飞行员_里海的博客 1983

C# 读取大型Xml文件

原文链接:http://www.cnblogs.com/yang-fei/p/5984973.html C# 读取大型Xml文件 这篇博客将介绍在C#中如何读取数据量很大的Xml文件。请看下面的Xml文件, xml version="1.0" encoding="utf-8"?> catalog> book id="bk101"> author>G

rztyfx的专栏 2243

2026年AI视频生成大模型全景指南:国内外主流工具深度对比与选型建议

AI视频生成技术在2025年至2026年间取得了突破性进展,从"能用"进化到"好用",商业化应用加速落地。中美双轨竞争格局基本成型,国内模型在技术追赶和本土化体验方面展现出强劲竞争力。对于用户而言,选择合适的AI视频生成工具需要综合考虑技术性能、使用门槛、成本预算和具体需求。零基础新手推荐海艺AI、通义万相等低门槛工具;进阶创作者可根据需求选择可灵AI、即梦AI、海艺AI等;专业开发者和企业用户可考虑智谱清影的开源能力或可灵AI的商业化服务。

nmdbbzcl的博客 2847

使用XMLReader、XMLDocument和DataSet读取xml文件及效率

在 .NET 开发中经常需要读取和操作XML文件,例如:操作配置文件(web.config和app.config)、读取业务设置的xml文件等。以前都喜欢用DataSet直接读取或写入xml,当文件小的时候,读取效率还能接受,但是当文件很大的时候,读取就变得很慢了。闲暇之于就对 XMLReader 、 XMLDocument和DataSet 读取XML文件进行简单总结,对效率进行简单比...

weixin_34221773的博客 186

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

在.NET中操作XmlDocument,XmlReader的方法

用XmlDocument进行读取大家想必一定都了解XML,利用XML技术来存储数据和文档是一件很容易的事情,.NET Framework 在它的命名空间System.Xml 就提供了一种可以很方便的操作xml的类XmlDocument,它使用起来非常容易,XmlDocument 其实就是一个简单的树。下面详细的介绍XmlDocument 的使用方法。    下面是这个类中操作节点的常用方法

cesium的专栏 4629

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C#中XmlDocument读取和创建 XML 文档

系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非缓存的只进 XML 数据访问方式 LINQ to XML用于访问 XML 数据 XPathNavigator类对XmlDocument和XPathDocument中的 XML 提供多个编辑选项和导航功能 XslCompiledTransform类为使用 XSL 转换进行 XML 数...

兽神 3557

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

使用XmlReader读Xml

XmlDocument和XElement在读取Xml时要将整个Xml文档放到内存中去操作,这样做操作简单,但是很费内存和IO(可能是磁盘IO或者网络IO);而在有些场景下我们必须考虑尽可能节省内存和IO的开销,这时候就该XmlReader和XmlWriter出场了。XmlRead

玉开的技术博客 3万+

Unity/C# XML处理全解析:LINQ to XML、XmlReader与XmlDocument实战对比

数据持久化是软件开发中的基础需求,用于将程序状态或配置信息存储到非易失性介质中,以便后续读取和恢复。其核心原理是通过序列化技术将内存中的对象转换为特定格式的字节流或文本,并写入文件或数据库。在C#生态中,XML作为一种结构清晰、可读性强且跨平台的数据交换格式,是实现数据持久化的关键技术之一,尤其适用于游戏配置、本地化数据和存档系统等场景。XML处理技术主要分为DOM解析、流式解析和现代LINQ查询三种范式,它们在内存占用、性能表现和易用性上各有侧重。对于Unity游戏开发而言,LINQ to XML凭借其直

weixin_34110749的博客 357

C# 关于 xmlreader xmldocument 和xpath 之间的性能比较

下面列出微软.net类库提供的读写xml文件个类及其特点:类名称优点缺点XmlReader快速、高效、可扩展只读,只向前,需要人工验证XmlDocument可往返、可读写、支持XPath筛选比XmlReader慢XPathNavigator可往返,支持XPath和XSLT只读XPathDocument

煮饭时,一只螃蟹顶出锅盖,对你说:"我 热!",答曰: 想红就忍着 ...... 2947

使用XmlReader读取xml文件

在.net开发中经常需要读写xml形式的文件(app.config和web.config分别是WinForm和WebForm中使 用到的xml文件的一个特列,并且微软提供了通用的方法,在此就不赘述了),.net类库提供了多种读写xml文件的方式,每一种方式都有其优点和缺 点,因而有其实用性。 下面列出微软.net类库提供的读写xml文件个类及其特点: 类名称 ...

dfg6565的博客 111

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

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

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 1795

使用C#进行XML文档读取

这节讲一下如何使用C#操作xml文档。操作xml类的命名空间在System.Xml下。创建XML文件:使用XmlDocument类来创建一个xml文档对象,我们通过对这个对象添加子元素来为xml文档添加元素。由于xml文档需要文档声明:所以在第一次创建xml文件的时候,我们要为文档对象添加这些声明,添加这些声明要使用XmlDocume...

zls365365的博客 2257

.Net那点事儿系列:C#操作Xml:通过XmlDocument读写Xml文档

.Net那点事儿系列:C#操作Xml什么是Xml?Xml是扩展标记语言的简写,是一种开发的文本格式。关于它的更多情况可以通过w3组织了解http://www.w3.org/TR/1998/REC-xml-19980210。如果你不知道它,那你就out太多了。.Net是如何处理Xm

玉开的技术博客 6808
上一篇: DataReader还是DataSet
下一篇: XML Schema 与 XML DTD的技术比较与分析
NETZHOU
博客等级 码龄24年 10粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值