首页 后端开发 C#.Net教程 在.NET Framework中轻松处理XML数据(5-1)

在.NET Framework中轻松处理XML数据(5-1)

Dec 20, 2016 pm 02:18 PM
.net xml数据

??设计XmlReadWriter类 

??如前面所说,XML reader和Writer是各自独立工作的:reader只读,writer只写。假设你的利用程序要治理冗长的XML文档,且该文档有不断定的数据。Reader供给了一个很好的方法往读该文档的内容。另一方面,Writer是一个非常有用的用于创立XML文档片段工具,但是假如你想要它即能读,又能写,那么你就要用XMLDOM了。假如实际的XML文档非常宏大,又会呈现了一个标题,什么标题呢?是不是把这个XML文档全部加载到内存中,然落后行读和写呢?让我们先看一下怎么样建立一个混杂的流分析器用于分析大型的XMLDOM。 

??像一般的只读把持一样,用普通的XML reader往次序的拜访节点。不同的是,在读的同时你可以用XML writer转变属性值以及节点的内容。你用reader往读源文件中的每个节点,后台的writer创立该节点的一个拷贝。在这个拷贝中,你可以增加一些新的节点,疏忽或者编纂其它的一些节点,还可以编纂属性的值。当你完成修正后,你就用新的文档调换旧的文档。 

??一个简略有效的措施是从只读流中拷贝节点对象到write流中,这种方法可以用XmlTextWriter类中的两个方法:WriteAttributes方法和WriteNode方法。 WriteAttributes方法读取当前reader中选中的节点的所有有效的属性,然后把属性当作一个单独的string拷贝到当前的输出流中。同样的,WriteNode方法用类似的方法处理除属性节点外的其它类型的节点。图十所示的代码片段演示了怎么用上述的两个方法创立一个源XML文档的拷贝,有选择的修正某些节点。XML树从树根开端被拜访,但只输出了除属性节点类型以外的其它类型的节点。你可以把Reader和Writer整合在一个新的类中,设计一个新的接口,使它能读写流及拜访属性和节点。 

Figure 10 Using the WriteNode Method 

XmlTextReader reader = new XmlTextReader(inputFile); 

XmlTextWriter writer = new XmlTextWriter(outputFile); 



// 配置 reader 和 writer 

writer.Formatting = Formatting.Indented; 

reader.MoveToContent(); 



// Write根节点 

writer.WriteStartElement(reader.LocalName); 



// Read and output every other node 

int i=0; 

while(reader.Read()) 



if (i % 2) 

writer.WriteNode(reader, false); 

i ; 





// Close the root 

writer.WriteEndElement(); 



// Close reader and writer 

writer.Close(); 

reader.Close(); 

??我的XmlTextReadWriter类并没有从XmlReader或者XmlWriter类中持续。取而代之的是另外两个类,一个是基于只读流(stream)的把持类,另一个是基于只写流的把持类。XmlTextReadWriter类的方法用Reader对象读数据,写进到Writer对象。为了适应不同的需求,内部的Reader和Writer 对象分辨通过只读的Reader和Writer属性公然。图十一列出了该类的一些方法: 

Figure 11 XmlTextReadWriter Class Methods 

Method 
Description 

AddAttributeChange 
Caches all the information needed to perform a change on a node attribute. All the changes cached through this method are processed during a successive call to WriteAttributes. 

Read 
Simple wrapper around the internal reader's Read method. 

WriteAttributes 
Specialized version of the writer's WriteAttributes method, writes out all the attributes for the given node, taking into account all the changes cached through the AddAttributeChange method. 

WriteEndDocument 
Terminates the current document in the writer and closes both the reader and the writer. 

WriteStartDocument 
Prepares the internal writer to output the document and add a default comment text and the standard XML prolog. 


??这个新类有一个Read方法,它是对Reader的read方法的一个简略的封装。另外,它供给了WriterStartDocument和WriteEndDocument方法。它们分辨初始化/开释(finalize)了内部Reader和writer对象,还处理所有I/O把持。在循环读节点的同时,我们就可以直接的修正节点。出于性能的原因,要修正属性必需先用AddAttributeChange方法声明。对一个节点的属性所作的所有修正都会存放在一个临时的表中,最后,通过调用WriteAttribute方法提交修正,清除临时表。 

 以上就是在.NET Framework中轻松处理XML数据(5-1) 的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Python实现XML数据的过滤和筛选 Python实现XML数据的过滤和筛选 Aug 09, 2023 am 10:13 AM

Python实现XML数据的过滤和筛选XML(eXtensibleMarkupLanguage)是一种用于存储和传输数据的标记语言,它具有灵活性和可扩展性,常被用于在不同系统之间进行数据交换。在处理XML数据时,我们经常需要对其进行过滤和筛选,以提取出我们所需的信息。本文将介绍如何使用Python来实现XML数据的过滤和筛选。导入所需模块在开始之前,我们

分享几个.NET开源的AI和LLM相关项目框架 分享几个.NET开源的AI和LLM相关项目框架 May 06, 2024 pm 04:43 PM

当今人工智能(AI)技术的发展如火如荼,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI模型LLM相关的项目框架,希望能为大家提供一些参考。https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一种开源的软件开发工具包(SDK),旨在将大型语言模型(LLM)如OpenAI、Azure

C#的就业前景如何 C#的就业前景如何 Oct 19, 2023 am 11:02 AM

无论您是初学者还是有经验的专业人士,掌握C#将为您的职业发展铺平道路。

完全指南:如何使用php扩展SimpleXML读取和处理XML数据 完全指南:如何使用php扩展SimpleXML读取和处理XML数据 Jul 28, 2023 pm 02:46 PM

完全指南:如何使用PHP扩展SimpleXML读取和处理XML数据简介:在现代的Web开发中,处理和操作XML数据是一项非常常见的任务。PHP作为一种强大的服务器端脚本语言,提供了多种扩展和功能,用于处理和操作XML数据。其中,SimpleXML扩展是一种特别有用的工具,可以简化XML数据的读取和处理过程。本文将为您提供一个完整的指南,介绍如何使用PHP扩展

Java框架和.NET框架的性能差异 Java框架和.NET框架的性能差异 Jun 03, 2024 am 09:19 AM

在高并发请求处理方面,.NETASP.NETCoreWebAPI性能优于JavaSpringMVC,原因包括:AOT提前编译,减少启动时间;更精细的内存管理,由开发人员负责分配和释放对象内存。

面向开发人员的.NET性能优化技术 面向开发人员的.NET性能优化技术 Sep 12, 2023 am 10:43 AM

如果你是一名.NET开发者,你必须意识到在交付高质量软件方面,优化功能和性能的重要性。通过熟练使用提供的资源并减少网站加载时间,你不仅为用户创造了愉快的体验,还能减少基础设施成本。

利用PHP函数处理XML数据 利用PHP函数处理XML数据 Jun 16, 2023 am 10:16 AM

XML(ExtensibleMarkupLanguage)是一种被广泛使用的数据格式,它被设计用于跨平台的数据传输和存储。在网络应用中,处理XML数据是非常常见的任务。本文将介绍如何使用PHP内置的XML函数处理XML数据。读取XML数据PHP提供了一组用于读取XML数据的函数。其中最常用的是simplexml_load_file函数。该函数将XML

C#.NET面试问题和答案:提高您的专业知识 C#.NET面试问题和答案:提高您的专业知识 Apr 07, 2025 am 12:01 AM

C#.NET面试问题和答案包括基础知识、核心概念和高级用法。1)基础知识:C#是微软开发的面向对象语言,主要用于.NET框架。2)核心概念:委托和事件允许动态绑定方法,LINQ提供强大查询功能。3)高级用法:异步编程提高响应性,表达式树用于动态代码构建。

See all articles