xml

一.XML概念和体系

        1.XML 概念

                XML 指可扩展标记语言(EXtensible Markup Language)

                XML 没有预定义标签,需要自行定义标签

        2.XML 的特点

                XML 数据以纯文本格式存储

                实现不同应用程序之间的数据通信

                实现不同平台间的数据通信

                实现不同平台间的数据共享

                使用 XML 将不同的程序、不同的平台之间联系起来

        3.XML 的作用

                数据存储和数据传输

        4.XML 和 HTML 之间的差异

                XML 主要作用是数据存储和传输(传输)

                HTML 主要作用是用来显示数据(显示)

        5.XML 文件的体系

                1) XHTML 可扩展标识语言

                2) WSDL Web Services Description Language 网络服务描述语言,这种文档可描述某个 Web service

                3) WAP 和 WML 手持设备的标记语言

                4) RSS( 广 泛 用 于 网 上 新 闻 频 道 ) : Really Simple Syndication 简易信息聚合,使用 RSS 订阅能更快地获取信息,网站提供 RSS 输出,有利于让用户获取网站内容的最新更新

                5) RDF 和 OWL: 重要的语义网技术语义网是为资产管理、企业整合及网络数据的共享和重用提供的一个框架。

                6) SMIL 同步多媒体集成语言,它是由万维网联盟规定的多媒体操纵语言。最新的 SMIL 版本是 2001 年 8 月推出的SMIL 2.0 版本,它通过时序排列对声音、影像、文字及图形文件进行顺序安排,然后将这些媒体表现看起来是同步的.

        6.一个标准的 XML 文档

代码实列:




二.XML基本语法

        1.XML 的基本语法

                1) 有且只有一个根元素

                2) XML 文档声明必须放在文档的第一行

                3) 所有标签必须成对出现

                4) XML 的标签严格区分大小写

                5) XML 必须正确嵌套

                6) XML 中的属性值必须加引号

                7) XML 中,一些特殊字符需要使用“实体”

                8) XML 中可以应用适当的注释

        2.XML 元素

                XML 元素指的是开始标签到结束标签的部分

                一个元素中可以包含:

                    1) 其他元素

                    2) 文本

                    3) 属性

                    4) 以上的混合

        3.XML 命名规则

                    1) 名称可以包含字母、数字及其他字符

                    2) 名称不能以数字或者标点符号开始

                    3) 名称不能以字母 xml 开始

                    4) 名称不能包含空格

三.Schema技术

        1.DTD 验证

            概念:DTD 文档类型定义

            作用:验证是否是“有效”的 XML

        代码实列:


PCDATA(Parsed Character DATA)的意思是被解析的字符 数据, CDATA(Unparsed Character Data)不应由 XML 解析 器进行解析的文本数据  

        2.DTD 的局限性

                1) DTD 不遵守 XML 语法

                2) DTD 数据类型有限

                3) DTD 不可扩展

                4) DTD 不支持命名空间

        3.Schema 技术

                Schema 是 DTD 的代替者,名称为 XML Schema,用于描述XML 文档结构,比 DTD 更加强大,最主要的特征之一就是XML Schema 支持数据类型

                1) Schema 是用 XML 验证 XML 遵循 XML 的语法

                2) Schema 可以用能处理 XML 文档的工具处理

                3) Schema 大大扩充了数据类型,而且还可以自定义数据类型

                4) Schema 支持元素的继承

                5) Schema 支持属性组

        4.Schema 的文档结构


               

                所有的 Schema 文档使用 schema 作为其根元http://www.w3.org/2001/XMLSchema:用于验证当前 Schema文档的命名空间(用于验证Schema本身)同时它还规定了来自命名空间 http://www.w3.org/2001/XMLSchema 的元素和数据类型应该使用前缀 xs:xmlns 相当于 java 中的 import, :xs“小名”,在使用时要写加“小名”做前缀XML 使用 Schema 验证,那 Schema 也是一个 XML,谁来验证它?DTD)

        5.使用 Schema 验证 XML 文档

                1) 创建 SchemaFactory 工厂

                2) 建立验证文件对象

                3) 利用 SchemaFactory 工厂对象,接收验证的文件对象,生 成 Schema 对象

                4) 产生对此 schema 的验证器

                5) 要验证的数据(准备数据源)

                6) 开始验证

四.DOM方法解析XML数据

        1.在 Java 程序中读取 XML 文件的过程称为解析 XML

        2.解析 XML 文件的方式

                1) DOM 解析 (java 官方提供)

                2) SAX 解析(java 官方提供)

                3) JDOM 解析(第三方提供)

                4) DOM4J 解析(第三方提供)

        3.DOM 解析 XML 的步骤

                1) 创建一个 DocumentBuilderFactory 的对象

                2) 创建一个 DocumentBuilder 对象

                3) 通过DocumentBuilder的parse(...)方法得到Document对象

                4) 通过 getElementsByTagName(...)方法获取到节点的列表

                5) 通过 for 循环遍历每一个节点

                6) 得到每个节点的属性和属性值

                7) 得到每个节点的节点名和节点值

代码实列:

        book.xml:


运行结果:


五.SAX方法解析XML数据

        1.SAX 的概述

                SAX,全称 Simple API for XML,是一种以事件驱动的XMl API,SAX 与 DOM 不同的是它边扫描边解析,自顶向下依次解析,由于边扫描边解析,所以它解析 XML 具有速度快,占用内存少的优点。

        2 .SAX 解析 XML 的步骤

                1) 创建 SAXParserFactory 的对象

                2) 创建 SAXParser 对象 (解析器)

                3) 创建一个 DefaultHandler 的子类

                4) 调用 parse 方法

代码实列:


六.JDOM方法解析XML数据

        1.JDOM 概述

                JDOM 是一种解析 XML 的 Java 工具包,它基于树型结构,利用纯Java的技术对XML文档实现解析。所以中适合于Java语言

        2.JDOM 解析 XML 的步骤

                1) 创建一个 SAXBuilder 对象

                2) 调用 build 方法,得到 Document 对象(通过 IO 流)

                3) 获取根节点

                4) 获取根节点的直接子节点的集合

                5) 遍历集合

            代码实列:


七.DOM4J方法解析XML数据

        1.DOM4J 是一个 Java 的 XML API,是 JDOM 的升级品,用来读写 XML 文件的

        2.DOM4J 解析 XML 的步骤

                1) 创建 SAXReader 对象

                2) 调用 read 方法

                3) 获取根元素

                4) 通过迭代器遍历直接节点

        3.四种解析 XML 的特点

                1)DOM 解析:

                        形成了树结构,有助于更好的理解、掌握,且代码容易编写。

                        解析过程中,树结构保存在内存中,方便修改。

                2)SAX 解析:

                        采用事件驱动模式,对内存耗费比较小。

                        适用于只处理 XML 文件中的数据时

                3)JDOM 解析:

                         仅使用具体类,而不使用接口。

                        API 大量使用了 Collections 类。

                4)DOM4J 解析:

                        JDOM 的一种智能分支,它合并了许多超出基本 XML 文档表示的功能。

                        它使用接口和抽象基本类方法。

                        具有性能优异、灵活性好、功能强大和极端易用的特点。

                        是一个开放源码的文件。

代码实列:



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容