热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

在.NETFramework中轻松处理XML数据(1-1)

??在.NETFramework中,XmlTextReader和XmlTextWriter类供给了对xml数据的读和写把持。在本文中,作者讲述了XML浏览器(Reader)的系统结构及它们怎样与XMLDOM和SAX说明器联合。作者也演示了怎么
??在.NET Framework中,XmlTextReader和XmlTextWriter类供给了对xml数据的读和写把持。在本文中,作者讲述了XML浏览器(Reader)的系统结构及它们怎样与XMLDOM 和SAX 说明器联合。作者也演示了怎么样应用浏览器分析和验证XML文档,怎么样创立格局良好的XML文档,以及怎么样用函数读/写基于Base64和BinHex编码的大型的XML文档。最后,作者讲了怎么样实现一个基于流的读/写分析器,它把读写器都封装在一个单独的类里。

??大概三年前,我参加了一个软件研究会,主题是“没有XML,就没有编程的未来”。XML确实也在一步一步的发展,它已经嵌进到. NET Framework中了。在本文中,我将讲解. NET Framework中用于处理XML文档的API的角色和它的内部特征,然后我将演示一些常用的功效。

??从MSXML到.net的XML

??在. NET Framework呈现之前,你习惯应用MSXML服务----一个基于COM的类库---写windows的XML的驱动程序。不像. NET Framework中的类,MSXML类库的部分代码比API更深,它完整的嵌在把持系统的底层。MSXML的确能够与你的利用程序通信,但是它不能真正的与外部环境联合。

??MSXML类库能在win32中被导进,也能在CLR中应用,但它只能作为一个外部服务器组件应用。但是基于.NET Framework的利用程序能直接的用XML类与.NET Framework 的其它命名空间整合应用,并且写出来的代码易于浏览。

??作为一个独立的组件,MSXML分析器供给了一些高级的特征如异步分析。这个特征在.NET Framework中的XML类及.NET Framework的其它类都没有供给,但是,NET Framework中的XML类与其它的类整合可以很轻易的获得雷同的功效,在这个基础上你可以增加更多的功效。

??.NET Framework中的XML类供给了基础的分析、查询、转换XML数据的功效。在.NET Framework中,你可以找到支撑Xpath查询和XSLT转换的类,及读/写XML文档的类。另外,.NET Framework也包含了其它处理XML的类,例如对象的序列化(XmlSerializer和the SoapFormatter类),利用程序配置(AppSettingsReader类),数据存储(DataSet类)。在本文中,我只讨论实现基础XML I/O把持的类。

??XML分析模式

??既然XML是一种标记语言,就应当有一种工具按必定的语法来分析和懂得存储在文档中信息。这个工具就是XML分析器---一个组件用于读标记文本并返回指定平台的对象。

??所有的XML分析器,不管它属于哪个把持平台,不过乎都分以下的两类:基于树或者基于事件的处理器。这两类通常都是用XMLDOM(the Microsoft XML Document Object Model)和SAX(Simple API for XML)来实现。XMLDOM分析器是一个普通的基于树的API---它把XML文档当成一个内存结构树浮现。SAX分析器是基于事件的API----它处理每个在XML数据流中的元素(它把XML数据放进流中再进行处理)。通常,DOM能被一个SAX流载进并履行,因此,这两类的处理不是相互排挤的。

??总的来说,SAX分析器与XMLDOM分析器正好相反,它们的分析模式存在着极大的差别。XMLDOM被很好的定义在它的functionalition聚集里面,你不能扩大它。当它在处理一个大型的文档时,它要占用很大内存空间来处理functionalition这个宏大的聚集。

??SAX分析器利用客户端利用程序通过现存的指定平台的对象的实例往处理分析事件。SAX分析器把持全部处理过程,把数据“推出”到处理程序,该处理程序依次接收或拒尽处理数据。这种模式的长处是只需很少的内存空间。

??.NET Framework完整支撑XMLDOM模式,但它不支撑SAX模式。为什么呢?由于.NET Framework支撑两种不同的分析模式:XMLDOM分析器和XML浏览器。它显然不支撑SAX分析器,但这并不意味它没有供给类似SAX分析器的功效。通过XML浏览器SAX的所有的功效都能很轻易的实现及更有效的应用。不像SAX分析器,.NET Framework的浏览器全部都运作在客户端利用程序下面。这样,利用程序本身就可以只把真正需要的数据“推出”,然后从XML数据流中跳出来。而SAX分析模式要处理所有的对利用程序有用和无用的信息。

??浏览器是基于.NET Framework流模式工作的,它的工作方法类似于数据库的游标。有趣的是,实现类似游标分析模式的类供给对.NET Framework中的XMLDOM分析器的底层支撑。XmlReader、XmlWriter两个抽象类是所有.NET Framework中XML类的基础类,包含XMLDOM类、ADO.NET驱动类及配置类。所以在.NET Framework中你有两种可选的方法往处理XML数据。用XmlReader和XmlWriter类直接处理XML数据,或者用XMLDOM模式处理。更多的关于在.NET Framework中读文档的先容可以参见MSDN 2002 年八月刊的Cutting Edge栏目文章。



推荐阅读
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 在Linux系统中,目录结构遵循文件系统层次标准(FHS),确保了系统的组织性和可维护性。其中,`/bin`目录是FHS要求必须存在的目录之一,主要存放了在单用户维护模式下仍可执行的基本命令和工具。这些命令不仅对root用户可用,普通用户也能使用,以确保系统在最小化运行状态下仍能进行基本的操作和管理。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • SharePoint 2010多语言用户界面的开发要点与注意事项
    SharePoint 2010 提供了强大的多语言用户界面支持,使得同一网站能够以多种语言展示。例如,对于一个中文版本的 SharePoint 2010 系统,管理员可以通过在服务器上安装英文语言包来实现多语言界面。这一功能不仅提升了用户体验,还扩展了系统的国际化能力。然而,在实施过程中需要注意一些关键点,如确保所有资源文件正确配置、进行充分的测试以及合理管理语言包的更新。这些步骤有助于确保多语言功能的稳定性和可靠性。 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 全面解析:Hadoop技术栈中的Linux操作系统概览
    全面解析:Hadoop技术栈中的Linux操作系统概览 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
  • Windows 10 用户遭遇人脸识别与指纹识别功能失效问题,寻求专业解决方案及驱动更新指导 ... [详细]
author-avatar
冷月荐向_878
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有