一、XML的概念
1.概念:
XML 指可扩展标记语言(EXtensible Markup Language);XML 没有预定义标签,需要自行定义标签。主要用来数据存储和数据传输。
2.特点:
1)XML 数据以纯文本格式存储;
2)实现不同应用程序之间的数据通信;
3)实现不同平台间的数据通信;
4)实现不同平台间的数据共享;
5)使用 XML 将不同的程序、不同的平台之间联系起来。
3.XML基本语法
(1)基本语法:
1)有且只有一个根元素。
2) XML 文档声明必须放在文档的第一行;
3)所有标签必须成对出现;
4)XML 的标签严格区分大小写;
5)XML 必须正确嵌套;
6)XML 中的属性值必须加引号;
7)XML 中,一些特殊字符需要使用“实体”;
8)XML 中可以应用适当的注释。
(2)XML元素:
指的是开始标签到结束标签的部分,一个元素中可以包含(其他元素、文本、属性、及其混合)。
(3)命名规则:
1)名称可以包含字母、数字及其他字符。
2)名称不能以数字或者标点符号开始;
3)名称不能以字母xml开始。
4)名称不能包含空格。
(4)标准的XML文档:
4.Schema技术:
(1)DTD验证:
DTD文档类型定义;验证是否是“有效”的XML。
局限性:
1)DTD 不遵守 XML 语法;
2)DTD 数据类型有限;
3)DTD 不可扩展;
4)DTD 不支持命名空间。
1)PCDATA(Parsed Character DATA) 的意思是被解析的字符数据。
2)CDATA (Unparsed Character Data )不应由 XML 解析器进行解析的文本数据。
(3)Schema 技术:
Schema 是 DTD 的代替者,名称为 XML Schema,用于描述XML 文档结构,比 DTD 更加强大,最主要的特征之一就是XML Schema 支持数据类型。
结构:
1)Schema 是用 XML 验证 XML 遵循 XML 的语法;
2)Schema 可以用能处理 XML 文档的工具处理;
3)Schema 大大扩充了数据类型,而且还可以自定义数据类型;
4)Schema 支持元素的继承;
5)Schema 支持属性组。
验证XML文档:
1) 创建 SchemaFactory 工厂;
2) 建立验证文件对象;
3) 利用 SchemaFactory 工厂对象,接收验证的文件对象,生成 Schema 对象;
4) 产生对此 schema 的验证器;
5) 要验证的数据(准备数据源);
6) 开始验证。
二、解析XML数据
在 Java 程序中读取 XML 文件的过程称为解析 XML。
需要读取的XML数据1.DOM方式:
DOM缺点:一次全部读进内;占用内存。
(1)步骤:
1) 创建一个 DocumentBuilderFactory 的对象。
2) 创建一个 DocumentBuilder 对象。
3) 通过DocumentBuilder的parse(...)方法得到Document对象。
4) 通过 getElementsByTagName(...)方法获取到节点的列表。
5) 通过 for 循环遍历每一个节点。
6) 得到每个节点的属性和属性值。
7) 得到每个节点的节点名和节点值。
代码截图 结果2.SAX方式:
是一种以事件驱动的XMl API,SAX 与 DOM 不同的是它边扫描边解析,自顶向下依次解析,由于边扫描边解析,所以它解析 XML 具有速度快,占用内存少的优点。
(1)步骤:
1) 创建 SAXParserFactory 的对象。
2) 创建 SAXParser 对象 (解析器)。
3) 创建一个 DefaultHandler 的子类。
4) 调用 parse 方法。
代码截图 结果3.JDOM解析MXL:
JDOM是一种解析XML的Java工具包,它基于树型结构,利用纯Java的技术对XML文档实现解析。所以中适合于Java语言。
(1)步骤:
1) 创建一个 SAXBuilder 对象;
2) 调用 build 方法,得到 Document 对象(通过 IO 流);
3) 获取根节点;
4) 获取根节点的直接子节点的集合;
5) 遍历集合。
代码截图 结果4.DOM4J解析XML:
1.DOM4J 是一个 Java 的 XML API,是 JDOM 的升级品,用来读写 XML 文件的。
(1)步骤:
1)创建SAXReader对象;
2)调用SAXReader对象的Read方法;
3)获取根元素;
4)通过迭代器遍历直接节点。
代码截图 结果5.四种解析的特点:
(1)DOM解析:
形成了树结构,有助于更好的理解、掌握,且代码容易编写。解析过程中,树结构保存在内存中,方便修改。
(2)SAX解析:
采用事件驱动模式,对内存耗费比较小。适用于只处理 XML 文件中的数据时。
(3)JDOM解析:
仅使用具体类,而不使用接口。API 大量使用了 Collections 类。
(4)DOM4J解析(推荐):
JDOM 的一种智能分支,它合并了许多超出基本 XML 文档表示的功能。
它使用接口和抽象基本类方法。具有性能优异、灵活性好、功能强大和极端易用的特点。是一个开放源码的文件。
6.XPath:
可以使用该技术快速获取节点和属性的信息。
(1)使用步骤:
1)添加dom4j和Jaxen的jar文件;
2)创建SAXReader对象;
3)调用SAXReader对象的read方法将xml文件转换Document对象;
4)调用相关的API方法查找指定的元素。
代码截图 结果
网友评论