VS 环境下XML 解析实现
作者:余以胜
来源:《电脑知识与技术》2013年第23
        摘要:XML已成为数据交换的标准。为了节省时间、提高效率,并简化XML编程,基于Visual Studio .NET的开发环境,实现了XML解析器,它能够指出XML文档出现错误的位置,并判定一个XML文档是否格式良好。
        关键词:微软开发环境;XML文档;XML解析;扩展样式表语言
        中图分类号: TP311 文献标识码:A 文章编号:1009-3044201323-5273-03
        在面向Internet的应用领域,为了更容易、更快捷、更有效地编写程序,是程序员追求的目标之一。XML可扩展标记语言,是继HTML之后广泛用于互联网应用的一个元语言,基于此又扩展出其它的语言。XSL扩展样式表语言,是以XML文件的格式使用的。对XML的高效处理,是Web应用系统性能上的基本要求。
        1 XML简介
        为了克服HTML的不足和局限性,W3C组织开发了XML,它也是一个标注语言,具有良好的数据存储格式、可扩展性、高度结构化、便于网络传输等特性。XML常用于不同系统之间的通信,通过Web方式或不同软件程序之间进行信息发布。XML也常常表现为简单、开放、自描述、上下文信息机器可阅读、内容与表现分离、多国语言字符集、支持Unicode等特点。
        XML程序员能够创建属于应用程序的标签、元素,甚至标注语言,来满足应用需求。XML采用非常严格的语法,并需要小而快、轻量型的浏览处理程序。
        设计XML的目的,是为了描述数据和文档。这些由人或程序来读取的数据,可以是高度结构化的,如存储在数据库中或电子表格中的数据;或者是松散结构的,如存储在信件或手册中的文本。XML已被许多产业界认可,用于应用程序或数据源的集成平台方面。程序员处理XML时,从大文本标签开始,到段落、子段落,到句子标签,到URL标签等等。一个格式良好的XML文档,必须包含元素、属性、文本,以及确定的规则。
        每个XML文档有它的逻辑结构和物理结构。逻辑结构定义了元素、属性、数据类型和XML中使用的其它部件等。构成XML文档的元素的定义和描述,是XML文档能否成功的关键。
物理结构提供一个个存储单元表示元素,这些单元称为实体,可表示如文本图像或其它媒体,如逻辑结构中允许的对象。
        2 XSL简介
        XSL是针对XML使用的XML样式技术,使用XSLT扩展样式表语言转换,XML结合CSS创建文档,由Web浏览器或其它用户代理程序调用执行。样式处理时,需要XML源文档和样式表,XML源文档包含于需要显示的信息,样式表则定义和描述XML文档如何被显示。XSL有处理指令PIs,它描述用于CSS中的XSL文档,以及它的位置或统一资源标识URIXPath是一个路径表示工具,从源文档(源树)创建结果树和XSLT文档的指令树。XPath用于描述如何定位一个结点,XML文档树如何被遍历,文档的子集如何访问等。XSLT使用XPath指定信息存储在XML文件的具体位置,使用源XPath作为样式信息的XSLT文件中的标记引用方式。
        3 XML解析实现
        3.1 具体设计
        XML解析程序的界面设计较简单,由三个按钮及其分别对应的文本框textbox、富文本框rich textbox和数组列表array list等控件组成。文本框,确定XML文件的路径;富文本框,显示XML文件的字符代码;数组列表,指示错误是否存在,如存在错误时即格式不是良好的,具体发生在哪些行和第几个字符位置。
        三个按钮分别是:装载文件按钮,用于浏览XML文件;另存为按钮,用于保存更改后的文件;校验按钮,用于检测XML文件是否格式良好。
        XML文件的路径应明确给出或文件能够被浏览。一个格式良好的XML文档,有助于确保信息是依据应用程序使用它的要求进行结构化定制的。仅仅是结构良好的XML文档,能够继续在任何其它元素中存储任何元素,或在任何相邻的元素旁边继续存储元素。
        该解析器的优越性在于:1)开发XML文档与其编程中的修改相分离,文档的内容随时都是合法XML,因此可以用标准接口设计工具进行开发。2XML文档的解析是在编译时进行,而不是在运行时进行,这对于复杂Web页面应用程序处理,保证了性能上的高要求。3)代码控制流保持着与页面分离,有助于在浏览器显示时,可以在服务器动态生成XML页面。4)对任何应用程序,如要求预处理XML文件的操作,这将是一个不错的选择。
        该解析器使用C# 实现,C# 支持XML类的命名空间有五个,分别是: 1System.XML2System.XML.Schema3System.XML.Serialization4System.XML.XPath5System.XML.XSL 。其中,System.XML命名空间包含主要的XML类,它有许多类用于读和写XML文档,这些类分别是:XMLReaderXMLTextReaderXMLValidatingReaderXMLNodeReaderXMLWriterXMLTextWriter
        可见,System.XML命名空间中共有4个读出和2个写入的XML类,这些类用于对XML文档的读写操作。XMLReader是一个抽象基础类,它包含了读文档的基本方法和属性,其中的Read方法,以流的方式读入一个结点。除了它的读出功能外,这个类也包含对文档结点进行导航遍历的多个方法。XMLWriter类,能够向XML文档中写入数据,它提供许多写的方法对XML文档中的项目写入,是XMLTextWriter类的基础类。XMLTextReaderXMLNodeReaderXMLValidatingReader等类均是从XMLReader类派生出的类. 除了 XMLReader 的方法和属性外,这些类还各自包含了读文本、读结点、读Schema等方法。XMLTextReader类用在编译器中,依据传递的文件名作为参数读入XML文档,如XMLTextReader textReader = new XMLTextReader "D:\\books.XML")。创建XMLTextReader类的实例之后,接着调用Read方法,开始读文档。Read方法调用结束后,就可以读出存储在文档中的所有信息和数
据。XMLReader类有属性如NameBaseURIDepthLineNumber等。
        3.2 具体实现步骤
        4 结束语
        该文使用C# .NET实现XML解析器,主要目的在于,通过简单且快捷的方法,检测出XML文档中的错误,以帮助程序员判定XML文档的格式是否为语法良好的。由于该解析器使用XML类,这些XML类在处理XML功能时,在编译、处理XML文档时发现其中的错误非常有效,因此,该解析器非常实用、高效,将其嵌入应用程序中使用,可以明显提高系统的效率和可靠性。
        参考文献:
        [1] 周翔,阮世颖.基于JavaXML DOM解析器实现[J].电脑知识与技术, 2007百度文库xpath定位21):755-756.
        [2] 冯进,丁博,史殿习,等. XML解析技术研究[J].计算机工程与科学, 2009312):120-124.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。