java基础深化 90. xml概念和体系

1. xml概念

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

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

2. xml的特点

1) xml数据以纯文本格式存储

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

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

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

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

3. xml和html

html:预定义标签,主要作用是用来显示数据(显示)

xml:自定义标签,主要作用是数据存储和传输(传输)

4. XML文档的组成



<?xml version="1.0" encoding="UTF-8"?>



5. xml文件的体系

1) XHTML

2) WSDL

3) WAP和WML

4) RSS

5) RDF和OWL

6) SMIL


java基础深化 91. 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) 名称不能包含空格


java基础深化 92. Schema技术介绍

1. DTD验证

概念:DTD文档类型定义

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

2. DTD的局限性

1) DTD不遵守XML语法

2) DTD数据类型有限

3) DTD不可扩展

4) DTD不支持命名空间

3. Schema技术

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

4. Schema的文档结构



<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ></xs:schema>
<!--所有的Schema文档使用schema作为其根元素
http://www.w3.org/2001/XMLSchema:用于验证当前Schema文档的命名空间(用于验证Schema本身)
同时它还规定了来自命名空间http://www.w3.org/2001/XMLSchema的元素和数据类型应该使用前缀xs:-->



5. 使用Schema验证XML文档的步骤




Java根据对象生成xml文件流 java对象转xml添加一个节点_java解析xml


1. 编写schema文档:

Java根据对象生成xml文件流 java对象转xml添加一个节点_java 对象转xml_02

2. 将schema文档引入到XML文档中:


Java根据对象生成xml文件流 java对象转xml添加一个节点_Java根据对象生成xml文件流_03

3. 编写类测试验证XML文档是否正确


java基础深化 93 .DOM方式解析XML数据

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

1. 解析XML文件的方式

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

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

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

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

2. DOM解析XML的步骤

1) 创建一个DocumentBuilderFactory的对象

2) 创建一个DocumentBuilder对象

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

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

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

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

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


package



java基础深化 94. SAX方式解析XML数据

1. SAX的概述

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

2. SAX解析XML的步骤


Java根据对象生成xml文件流 java对象转xml添加一个节点_java解析xml_04


Java根据对象生成xml文件流 java对象转xml添加一个节点_Java根据对象生成xml文件流_05

BookDefaultHander重写DefaultHandler中的startDocument()和endDocument()方法

Java根据对象生成xml文件流 java对象转xml添加一个节点_java解析xml_06

BookDefaultHander中的startElement方法

Java根据对象生成xml文件流 java对象转xml添加一个节点_java 对象转xml_07

BookDefaultHander中的endElement方法和chararters方法

Java根据对象生成xml文件流 java对象转xml添加一个节点_java解析xml_08



java基础深化 95. JDOM解析XML数据

1. JDOM概述

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

2. JDOM解析XML的步骤


Java根据对象生成xml文件流 java对象转xml添加一个节点_Java根据对象生成xml文件流_09


Java根据对象生成xml文件流 java对象转xml添加一个节点_java 对象转xml_10



java基础深化 96. DOM4J解析XML数据

DOM4J是现在比较流行和使用最多的方式,是一个Java的XML API,是JDOM的升级品,用来读写XML文件的,只适合于Java语言。

1. DOM4J解析XML


Java根据对象生成xml文件流 java对象转xml添加一个节点_java解析xml_11


Java根据对象生成xml文件流 java对象转xml添加一个节点_Java根据对象生成xml文件流_12


Java根据对象生成xml文件流 java对象转xml添加一个节点_java解析xml_13

输出结果

2. 四种解析XML技术的特点

1) DOM解析:

形成了树结构,有助于更好的理解、掌握,且修改代码容易编写。解析过程中,树结构保存在内存中,方便修改。

2) SAX解析:

采用事件驱动模式,对内存耗费比较小。适用于只处理XML文件中的数据

3) JDOM解析:

仅使用具体类,而不使用接口。API大量使用了Collection类

4) DOM4J解析:

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


java基础深化 97. XPATH技术快速获取节点

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

准备资源

  • DOM4J的jar包
  • Jaxn的jar包
  • Xpath中文文档