XML基础PPT课件

上传人:优*** 文档编号:149493128 上传时间:2020-10-27 格式:PPT 页数:47 大小:146.50KB
返回 下载 相关 举报
XML基础PPT课件_第1页
第1页 / 共47页
XML基础PPT课件_第2页
第2页 / 共47页
XML基础PPT课件_第3页
第3页 / 共47页
XML基础PPT课件_第4页
第4页 / 共47页
XML基础PPT课件_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《XML基础PPT课件》由会员分享,可在线阅读,更多相关《XML基础PPT课件(47页珍藏版)》请在金锄头文库上搜索。

1、.,1,XML基础,.,2,Xml 的数据传输,.,3,XML,XML 即可扩展标记语言(Extensible Markup Language),是一种平台无关的表示数据的方法。简单地说,使用 XML 创建的数据可以被任何应用程序在任何平台上读取。甚至可以通过手动编码来编辑和创建 XML 文档。其原因是,XML 与 HTML 一样,都是建立在相同的基于标记技术基础之上。,.,4,XML(Extensible Markup Language)是一种可扩展的置标语言。 XML来源于SGML(标准通用置标语言),但XML是它的简化,但保留了其精华。W3C于1998年2月批准了XML的1.0版本。成为

2、一个国际标准。 置标指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。,.,5,XMl的特点,XML 文档是一个自我描述的数据集合 XML 的优点 自我描述性 可移植性 以树结构描述数据 提供可用于数据库的功能 XML 的缺点 数据存取慢 缺少数据库的功能 在生产环境中将失效,.,6,文档格式定义 DTD,XML 的优点在于它允许您定义自己的有意义的标记,因此您可以最大程度地定制文档。但 XML 就是 XML(可扩展),而人就是人(疯狂的人),这可能很快就会无法控制。解决方案是 DTD,它指定了 XML 文档的标记。简而言之,DTD 指定:可以在文档中存在的元素

3、、那些元素可以具有的属性、在元素内部元素的层次结构以及元素在整个文档中出现的顺序。 目的:确保文档有效,.,7,DTD(Document Type Definition,文档格式定义)。对于想利用XML文件来交换信息的实体来说,他们之间必须有一个约定即编写XML文件可以用哪些标记,母元素中能够包括哪些子元素,各个元素出现的顺序,元素中的属性怎样定义等。这样他们在用XML交换数据时才能够畅通无阻,这种约定称为DTD。可以把DTD看作编写XML文件的模板。对于同行业之间的XML数据交换,有一个固定的DTD将会方便很多。比如说,如果网上的各大电子商场的XML网页都遵循同一个DTD时,那么我们就可以轻

4、松地依据这个DTD 编写一个应用程序,去网上将我们感兴趣的东西自动抓回来。,.,8,格式正确的 XML 文档是满足以下三个基本结构需求的文档: 有一个包含所有其它元素的父(或根)元素 每个开始标记都有结束标记 所有元素都正确嵌套的,.,9, DTD 的第一行定义了 XML 文档的父元素: person 。person 元素有两个子元素: firstname 和 lastname 。 第二和第三行包含了元素属性 #PCDATA ,它表明 firstname 和 lastname 元素可能包含经过语法分析的字符数据(在这种情况下是文本)。DTD 文件的最后一行描述了一个空标记: nothing 。

5、 从清单 3 中的 DTD 可以看出,任何阅读我们的 XML 文档的人(以及对它进行语法分析的语法分析器)都知道 person 元素仅包含两个文本元素: firstname 和 lastname 。此外,DTD 规定,在整个文档中, firstname 元素必须在 lastname 元素之前出现。,.,10, Jane Fung ,.,11,DTD 中的内容,虽然 DTD 不是必需的,但它们确实带来方便。DTD 适合三个基本用途。它能: 对标记编制文档 加强标记参数内部的一致性 使 XML 语法分析器能够确认文档 如果不对 XML 文档进行 DTD 定义,文档就无法由 XML 语法解析器进行确

6、认。,.,12,XML解析 读取XML文档并将文档分解为可进行分析的几个元素的过程 处理 XML 文档 解析器检查 XML 文档的有效性和格式规范 创建解析树并将其传递给呈现代理程序 呈现代理程序将显示此解析树 解析器将创建一系列对象,用于显示与 XML 文档关联的样式表,解析器,.,13,1.DOM 2.SAX 3.JDOM 4.DOM4J,解析器概述,.,14,文档对象模型 dom,基于树和节点的文档对象模型(Document Object Module)称为DOM,DOM 采用建立树形结构的方式访问。DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM

7、解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。由于它的遍历能力,DOM 解析器常用于XML文档需要频繁的改变的服务中。,.,15,1。W3C制定的一套跨平台和语言标准,表示文档的内容和模型 2。用Level(级别)的形式代替版本。Level1定义了文档中内容的功能查找方法。Level2提供了对XML,HTML和CSS等内容模型的模块选项。Level3制定中,

8、为特定类型提供更多的工具如XML的验证公交等 3。基于对象的将 XML 文档表示为树 4。在内存中解析和存储 XML 文档 5。允许随机访问文档的不同部分 6。DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历,.,16,树模型 每个项目都表示一个节点 每个终端项目都表示一个叶节点 直接上级节点表示父节点 任何上级节点都表示祖先节点 从树的一个部分可以到达树的任何其他部分,文档对象模型采用的模式树模式,.,17,请看下列“department.xml”XML 文档: 约瑟夫 玛丽 ,.,18,DOM 中“department.xml”的结构如下:,.,19,DOM解析函数,得

9、到文档模型的根元素 Element root = doc.getDocumentElement(); 元素Element的函数: String getTagName() -得到标签的名字 String getAttribute(“unit”)-得到元素的unit属性值 节点Node的函数: NodeList getChildNodes() - 得到子节点的集合 Node getFirstChild() - 得到第一个子节点 Node getLastChild() - 得到最后一个子节点,.,20,DOM解析函数,节点Node的函数: Node getNextSibling() - 得到下一个兄

10、弟节点 Node getPreviousSibling() - 得到前一个兄弟结点 Node getParentNode() - 得到父节点 NamedNodeMap getAttributes() - 得到所有的属性集合 String getNodeName() - 得到当前节点的名字 String getNodeValue() - 得到当前节点的值 NodeList的函数 int getLength() -得到集合长度 Node item(int index) - 得到集合中的一个元素,.,21,要将 XML 文档读入 DOM,请执行下列步骤: 获得一个新 DocumentBuilderF

11、actory 实例 使用 DocumentBuilderFactory 构建 DocumentBuilder 使用 DocumentBuilder 中的 parse( ) 方法解析给定的文件 将已解析的文档存储在 Document 对象中 使用 getElementsByTagName( ) 方法从文档获得元素,使用 DOM 解析 XML 文档,.,22,使用 DOM 解析 XML 文档,DOM 文档是使用 Transformer 类写入输出结果 采用两个参数,即 DOMSource 和 StreamResult DOMSource 对象以 DOM 树形式来保存源树。 StreamResult

12、 对象保存转换结果 将 XML 数据写入输出结果的步骤如下: 创建文档对象 创建 TransformerFactory 程序的一个实例 使用 TransformerFactory 创建 Transformer 类的一个实例 使用 Transform 方法将源树处理至输出结果中,.,23,写XML文档函数,DocumentBuilder 的函数: Document doc = builder.newDocument(); -新建一个模型 Document 的函数: Element createElement(String name) 建立一个元素 Text createTextNode(Stri

13、ng data)-创建一个文本节点 Node的函数: Node appendChild(Node child) - 添加一个子节点 Element 的函数: void setAttribute(String name, String value) - 设置元素的一个属性和属性值,.,24,DOM解析演示,MyXMLReader.java MyXMLWriter.java,.,25,DOM 最适用的情形 在结构上修改 XML 文档时 在内存中与其他应用程序共享文档时 DOM 的缺点 将整个文档存储在内存中 方法命名惯例不符合 Java 编程惯例,.,26,SAX,基于事件的XML简单API(Si

14、mple API for XML)称为SAX,SAX 采用的事件模型。SAX 解析器在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX 对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。,.,27,1。SAX(Simple API for XML ) 基于事件驱动, 使用回调机制将重要事件通知给客户端应用程序 2。SA

15、X 的结构 简单 SAX 应用程序的组件包括: 应用程序 创建一个解析器和一个文档处理程序 告诉解析器使用哪个文档处理程序 告诉解析器处理文档 解析器 将重要事件通知给文档处理程序 文档处理程序 处理通知,.,28,简单 SAX 的组件,.,29,用于 XML 解析的 Java API 可使用 SAX 的普通 API 作为 javax.xml 包实现 易于安装且快速 更具一致性 使用 Factory 设计模式创建要解析的对象,.,30,SAXParser 类中可用的方法如下:,.,31,SAXParserHandler 类 解释如何捕获和响应各个事件 startDocument( ) 和 en

16、dDocument( ) 事件是在文档的起始处和结束处被激发的 startElement( ) 和 endElement( ) 事件是在遇到起始标记和结束标记时被激发的 characters( ) 事件是在遇到字符数据时被激发的 使用 SAX 解析 XML 文档的步骤如下: 创建 SAXParserFactory 的实例 创建 SAXParser 的实例 创建 SAXParserHandler 类 使用 parse() 方法解析 XML 文档,.,32,SAX解析演示,SaxXMLReader.java演示,.,33,SAX 最适用的情形 在需要解析大型文档时 在只需一个信息子集时 SAX 的缺点 不能对文档进行随机访问 只读 只遍历文档一次,.,34,JDOM,JDOM:Jason Hunter和Brett McLaughlin开发的项目,JDOM的设计目标就是在读和创建XML时简化DOM,取代DOM。 微软的MSXML解析器:微软已经给我们提供了一个XML语法解析器,即一个叫做MSXML.DLL的动态链接库(C语言),.,35,jdom包的结构包括:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号