在.NET Framework中轻松处理XML数据(5-1)
??设计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)!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

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

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

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

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

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

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

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