您的位置:首页 > 编程语言 > Java开发

Java XML解析技术

2016-12-22 22:07 190 查看
Java XML解析技术
其功能重在数据的传输
XML:
1、可扩展的标记语言
2、设计用来传输和存储数据

3、允许开发人员自定义标签名字,但是要符合一定的规范
xml和html区别
a、xml不是html的替代,他们两个有各自的功能
b、xml设计用来传输额存储数据,重点在于数据
c、html设计用来显示数据,

<?xml version = 10px encoding="UTF-8" standalone="yes" ?>
根源上,一个xml文件有且仅有一个根元素
CDATA标签

不被解析器解析的文本,其内部的标签不会被解析
XML语法规则

xml文档必须是格式良好的,入过不是格式良好,就不能被应用程序和浏览器正确的识别和解析
详细规则:

必须有XML声明语句<?xml version = 10px encoding="UTF-8"?>

必须有且仅有一个根元素

标记大小写敏感

属性值用引号

标记成对

空标记关闭

元素正确嵌套
元素语法

可包含字母,数字和其他字符,不能以数字和"_"开头

不能以XML、xml、Xml开头

名称中不能包含空格,冒号(注:冒号留给命名空间使用)
XML技术体系概述
1、文档描述与校验技术:DTD
2、文档转换技术(XSL/XSLT):xml最大的特点就是内容和格式分离,xml不包含如何显示数据,xls解决了xml数据显示的的问题。
xsl,xslt可以随意将xml文档转换为html,pdf
3、文档查询技术(XPath/Xquery):数据库和sql之间的关系
4、文档解析技术(XML DOM/SAX):
(a)DOM:文档对象模型,定义了一组接口,用这些接口可以解析或创建xml文档,基于对象的,与平台和语言无关。

特点:整个文档必须在内存解析和存储,对大型文档来说占用资源严重。数据都在内存,解析获取数据效率高
(b)SAX:sax是xml简单的应用程序的接口,sax解析文档是基于事件驱动,sax使用回调机制来通知桌面应用程序

特点:基于事件驱动模型,标签一个一个解析,开始标签和结束标签对应不同的事件,不会讲整个文档加载到内存,所以不会浪费内存资源

缺点:要到达指定的位置,按照顺序处理,不能随机访问。sax只读,文档只能遍历一次
(c):文档链接和定位技术:文档定位技术,可以定位节点和文档集

dom4j:常用的技术,用的人比较多的一种技术,是第三方提供的,必须导入jar包

dom4j的使用
创建一个xml文件
1、DocumentHelper通过类产生一个文档对象

Document document = DocumentHelper.createDocument();
2、通过document对象创建一个根节点

dtd(文档类型定义)document type definition
主要是用来约束xml文档书写的规范——xml约束

常用的约束:xml DTD 、 xml Scheme

在xml里边,!DOCTYPE后边的根元素名是区分大小写的,在html不区分
<!DOCTYPE 根元素 (PUBLIC/SYSTEM)>

PUBLIC:如果写public表示约束的文件来自于网络文件。 第一个表示dtd的名字,第二个表示url

SYSTEM:当前的约束条件来子与本地的dtd文件 直接找到路径

dtd文件的书写
eg:<!ELEMENT user (userName+,pwd+)>
表示当前根元素下边运行存在userName这个节点,存在一次或多次
eg:<!ELEMENT firstName (#PCDATA)>
表示当前firstName节点下面的允许出现任何文本元素

<!ATTLIST 元素名称 属性的名字 类型 属性的特点>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: