导航:首页 > 编程语言 > xml编程与应用教程答案

xml编程与应用教程答案

发布时间:2023-12-11 00:35:54

java解析xml的几种方式哪种最好

(1)DOM解析
DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取
和操作文档的任意部分,是W3C的官方标准
【优点】
①允许应用程序对数据和结构做出更改。
②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。
【缺点】
①通常需要加载整个XML文档来构造层次结构,消耗资源大。
【解析详解】
①构建Document对象:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = bdf.newDocumentBuilder();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);
Document doc = bd.parse(is);
②遍历DOM对象
Document: XML文档对象,由解析器获取
NodeList: 节点数组
Node: 节点(包括element、#text)
Element: 元素,可用于获取属性参数
(2)SAX(Simple API for XML)解析
流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法
完成解析工作,解析XML文档的逻辑需要应用程序完成
【优势】
①不需要等待所有数据都被处理,分析就能立即开始。
②只在读取数据时检查数据,不需要保存在内存中。
③可以在某个条件得到满足时停止解析,不必解析整个文档。
④效率和性能较高,能解析大于系统内存的文档。
【缺点】
①需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),文档越复杂程序就越复杂。
②单向导航,无法定位文档层次,很难同时访问同一文档的不同部分数据,不支持XPath。
【原理】
简单的说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束时通知事件
处理函数(回调函数),进行相应处理,直到文档结束
【事件处理器类型】
①访问XML DTD:DTDHandler
②低级访问解析错误:ErrorHandler
③访问文档内容:ContextHandler
【DefaultHandler类】
SAX事件处理程序的默认基类,实现了DTDHandler、ErrorHandler、ContextHandler和EntityResolver接口,通常
做法是,继承该基类,重写需要的方法,如startDocument()
【创建SAX解析器】
SAXParserFactory saxf = SAXParserFactory.newInstance();
SAXParser sax = saxf.newSAXParser();
注:关于遍历
①深度优先遍历(Depthi-First Traserval)
②广度优先遍历(Width-First Traserval)
(3)JDOM(Java-based Document Object Model)
Java特定的文档对象模型。自身不包含解析器,使用SAX
【优点】
①使用具体类而不是接口,简化了DOM的API。
②大量使用了Java集合类,方便了Java开发人员。
【缺点】
①没有较好的灵活性。
②性能较差。
(4)DOM4J(Document Object Model for Java)
简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP
【优点】
①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
②支持XPath。
③有很好的性能。
【缺点】
①大量使用了接口,API较为复杂。
(5)StAX(Streaming API for XML)
流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持,JDK1.6新特性
【和推式解析相比的优点】
①在拉式解析中,事件是由解析应用产生的,因此拉式解析中向客户端提供的是解析规则,而不是解析器。
②同推式解析相比,拉式解析的代码更简单,而且不用那么多库。
③拉式解析客户端能够一次读取多个XML文件。
④拉式解析允许你过滤XML文件和跳过解析事件。
【简介】
StAX API的实现是使用了Java Web服务开发(JWSDP)1.6,并结合了Sun Java流式XML分析器(SJSXP)-它位于
javax.xml.stream包中。XMLStreamReader接口用于分析一个XML文档,而XMLStreamWriter接口用于生成一个
XML文档。XMLEventReader负责使用一个对象事件迭代子分析XML事件-这与XMLStreamReader所使用的光标机制
形成对照。

⑵ 如何在 Visual Studio 中进行XML编程

XML(可扩展标记语言)是一种提供数据描述格式的标记语言。与其他编程语言相比,其有很大的优势。如可以在多个平台中进行更加准确的内容声明、更加容易的进行检索等等。今天我们来介绍如何在Visual Studio中进行XML编程。 一、XML编程可以提高Visual Studio平台中数据的处理能力。 与其把XML当作一种可扩展标记语言,笔者更愿意把它叫做一种工具。这个工具可以提高Visual Studio平台中数据的处理能力。正如文章开头所说的,XML可以将后台数据与表进行分离。如此的话,两者就可以分工合作。Visual Studio平台只负责数据的逻辑处理,如逻辑运算、条件判断等等,而不需要关心其客户端显示的格式问题。而XML负责在客户端如何显示,如保留几位小数、显示哪些内容、权限控制等等。术业有专攻,这么处理,就可以明显提高Visual Studio平台中应用程序的数据处理能力。 二、使用XML编程工具时要注意安全问题。 虽然可以在Visual Studio平台中实现XML编程语言,但是他们毕竟是不同的产品,其内部的实现机制,如安全机制,有比较大的差异。为此要在这个Visual Studio平台中使用XML工具的话,一些安全方面的问题需要引起程序开发人员的重视。 如在使用XML编辑器的时候,需要注意类的执行权限。XML编辑器是Visual Studio中实现XML的主要途径。通常情况下,这个XML编辑器在系统初次加载时会自动下载。那么如何下载这个XML编辑器才是安全的呢?一般情况下可以通过HTTP的方式下载。但是由于HTTP协议自身的缺陷(其不会对传输的数据进行加密),故有时候出于安全方面的考虑,会对其进行限制。用户通常可以在XML编辑器、杂项工具选项对话框中,设置是否需要禁用HTTP下载。 如在调试时,需要给XSLT调试程序配置合适的权限。XSLT是在Visual Studio平台中调试XML可扩展标记语言的工具。XSLT调试程序会在沙盒型应用程序中对XML脚本语言进行XSLT转换。在转换的过程中,出于安全方面的考虑,程序人员往往需要根据样式表所在处的位置来指定一系列的安全策略。如来自互联网的样式表通常来说存在一定的安全隐患,此时就需要对其权限进行限制。而对于来自用户电脑上或者企业共享服务器上的样式表,相对安全,可以采取完全信任的权限运行。针对样式表的不同位置设置不同的权限,则可以在最大程度上保障安全与效率方面的均衡。 三、如何在Visual Studio 中生成XML Web Services客户端。 通过创建XML Web Services客户端的形式来实现XML,是一个常用的便捷方法。XML Web Services客户端是指使用SOAP消息与Web服务器进行通信的组件和应用程序。XML Web Services客户端其实际的表现形式有两种。一是通过网页形式来实现,即一个Web应用程序;二是通过传统的客户端界面来实现,即跟C/S模式下的客户端类似,只是其采用的协议不同。那么该如何在Visual Studio平台中建立XML Web Services客户端呢?由于在Visual Studio中友好的集成了XML工具,所以要实现这个要求并不难。笔者认为可以归结为如下四个步骤来完成。 第一步创建一个Web服务的代理类。在具体实现之前,程序开发人员要转变一个观念。即在实现XML编程工具的时候,其都是通过类来实现的。也就是说,VisualStudio中内置了许多类,通过这些类来调用XML可扩展标记语言。了解这个前提,对于后面的开发具有很大的帮助。为此要创建XML Web Services客户端的话,首先需要创建一个Web服务的代理类。 第二步在客户端重对刚才创建的类进行处理。如需要在客户端代码中引用刚才创建的代理类,并且需要创建这个代理类的一个实例。在引用代理类的时候,需要注意不同的客户端类型,其引用的方式有所不同。在开发客户端的时候,如果即要采用Web应用程序作为客户端,也需要传统的C/S客户端,那么在开发应用程序中可能需要加入一个必要的判断条件,以增强应用程序的灵活性。举一个简单的例子,如开发一个邮件系统。其即可以直接通过网页来访问邮件,也可以通过outlook邮件客户端来接收邮件。由于采取的客户端类型不同,其代理类的引用方式也有所不同。此时服务器就需要判断用户采用的是哪种类型的客户端。根据判断的结果来确定所需要采用的引用方法。 第三步设置代理类的属性与方法。一般情况下,对于代理类的属性只要采用默认的即可。但是有时候程序开发人员可能不允许匿名访问。如一个电子商务系统,一定要求用户有合法的身份才可以访问。此时就需要更改代理类的属性(更改Credentials属性)。这个属性主要的作用就是用来获取或者设置客户端身份验证的安全凭据。如程序开发人员将这个属性显示设置为需要身份验证凭据时,就会禁止用户匿名访问。设置完属性之后,还需要对这个代理类调用与要与之进行通信的Web服务设置相对应的方法。这里需要注意一点,跟代理类引用一样,用户所采用的客户端类型不同,其方法也有所不同。对于有多个客户端要求的应用软件来说,需要在设置的时候,加入一个判断条件。根据用户所采用的客户端不同,对应不同的方法。否则的话,无论是数据还是在显示格式上,都会与实际的有所差异。 第四步就是对客户端进行调试。在调试的时候,除了要注意功能是否可以实现之外,还需要关注安全方面的问题。在上面的内容中笔者强调过,需要根据XML样式表的位置来设置不同的权限。这可以在保障安全性的同时,提高应用程序的效率。在调试与测试的过程中,有可能为出现“请求因HTTP状态失败:拒绝访问”的错误信息。很多新手在使用XML编程工具的时候,都会遇到这个问题。这主要是因为权限上的错误所造成的。如有可能是没有将安全凭据传递给代理类的凭据缓存。 要解决这个问题的话,就需要对Windows身份验证模式进行配置。如需要配置客户端凭据并将这个凭据传递给使用各种形式的Windows身份验证的Web服务。身份验证是一项比较复杂的工作。在一个开发团队中,往往有专门的技术人员来负责这块内容,其主导这个应用程序的整个安全机制。故具体采用哪种形式的身份认证方式、如何才能够安全的传递凭据,这需要开发人员与安全技术人员共同协商实现。其一个主要的原则就是在保障安全的同时,不要影响到应用程序的性能。在实际工作中,经常会遇到这种错误。系统登陆的时候,速度特别慢。但是登陆以后,其速度就会有显着的改善。这很大一方面原因,就是没有在身份认证与性能之间获得一个平衡。这无形中就给用户造成了不好的影响。 最后笔者总结一下。在Visual Studio平台中生成XML编程时,主要需要注意两点。一是用户所采用的客户端不同,其代理类的引用与对应的方法有所差异。为了提高应用程序的灵活性,在代码中往往需要加入判断条件。或者就开发两个不同类型的客户端。二是安全固然重要,性能也不能够忽视。在实际开发中,要避免登陆过程慢、后续操作快的误区。

⑶ 如何利用Java语言进行XML编程

为了简化编写处理 XML 的 Java 程序,已经建立了多种编程接口。这些接口或者由公司定义,或者由标准体或用户组定义,以满足 XML 程序员的需要。本教程将讨论以下接口:

Document Object Model (DOM,文档对象模型),Level 2

Simple API for XML (SAX), Version 2.0

JDOM, Jason Hunter 和 Brett McLaughlin 创立的一种简单 Java API

Java API for XML Processing (JAXP)

这四种接口中前三个(DOM、SAX
和 JDOM)定义了如何访问与表示 XML 文档的内容。JAXP 包含创建解析器对象的类。要创建 DOM 或 SAX 解析器,您需要使用
JAXP。如果使用 JDOM,JDOM 库将在幕后使用 JAXP 为您创建一个解析器。总之:

使用 DOM、SAX 或 JDOM 处理 XML 文档的内容。

如果使用 DOM 或 SAX,则使用 JAXP 创建解析器。

如果使用 JDOM,则 JDOM 库为您创建解析器。

我将考察上述每种 API 的设计目标、长处和缺点,同时还涉及到一点它们的历史以及创建这些 API 的标准体。
关于例子

本教程中包含多个使用 DOM、SAX 和 JDOM API 的示例程序。所有这些程序都使用 XML 标记的莎士比亚十四行诗。十四行诗的结构如下:
<sonnet>
<author>
<lastName>
<firstName>
<nationality>
<yearOfBirth>
<yearOfDeath>
</author>
<lines>
[14 <line> elements]
</lines>
</sonnet>
设置机器
在运行这些例子之前,需要对您的机器作一些设置。
(假设您知道如何编译和运行 Java 程序,并了解如何设置 CLASSPATH变量。)
首先请访问 Apache XML Project (http://xml.apache.org/xerces2-j/) 上的 Xerces XML 解析器主页。
您也可以直接去 下载页面 (http://xml.apache.org/xerces2-j/download.cgi)。
解压从 Apache 下载的文件。根据解析器版本的不同,这样将会创建名为 xerces-2_5_0或者类似名称的目录。
所需要的 JAR 文件(xercesImpl.jar和xml-apis.jar)应该出现在 Xerces 根目录下。
访问 JDOM 项目站点 并下载最新版本的 JDOM (http://jdom.org/)。
解压从 JDOM 下载的文件,这样将建立名为 jdom-b9或者旅毁类似名称的目录。
所需要的 JAR 文件(jdom.jar)应该在build目录中。
最后请下载本教程的示例压缩文件 ,并解压该文件。
把当前目录 (.)、xercesImpl.jar、xml-apis.jar和jdom.jar添加到CLASSPATH变量中。

基础
XML 解析器是读取 XML 文档并分析其结构的一段代码。这一部分将介绍 XML 解析器是如何工作的。
我将讨论不同类型的 XML 解析器以及何时使用它们。
本教程后面的章节将讨论如何创建解析羡和器以及如何处理解析器给出的结果。
如何使用解析器
我将在后面的章节对此详细讨论,一般而言使用解析器需要以下步骤:
创建一个解析器对象
使解析器指向您的 XML 文档
处理结果
显然第三步最为复杂。一旦知道了 XML 文档的内容,比方说,您可能希望生成一个 Web 页面、创建一个订单或者做一个饼图。
考虑到 XML 文档所含数据的兄镇盯多样性,编写一个应用程序处理所有可能的输入是一项艰巨的任务。
所幸的是,这里讨论的常见 XML 解析工具使这项工作大大简化了。

阅读全文

与xml编程与应用教程答案相关的资料

热点内容
幼儿编程教育培训多少钱 浏览:401
经常生气有什么东西能解压 浏览:900
代理服务器地址和端口可以怎么填 浏览:62
unity5手游编译模型 浏览:265
安卓无人机app源码 浏览:808
pl1编程语言 浏览:801
台达plc编程换算指令大全 浏览:174
手机上的编程游戏 浏览:108
服务器密码机有什么用 浏览:477
dos磁盘命令 浏览:955
单片机cpu52的功能 浏览:691
opc服务器怎么开发 浏览:373
觅喜是个什么app 浏览:402
加密cd机 浏览:946
社保用什么app缴纳 浏览:313
nodevlinux 浏览:582
腾讯tt服务器怎么登录密码 浏览:898
windows命令提示符 浏览:352
win7管理员权限命令 浏览:729
地图app哪个适合老年人用 浏览:74