01_xml&dom_sax_dom4j编程

一、XML简介及语法:
1.XML:eXtensible Markup Language(可扩展标记语言)
2.产生原因:用来处理大量有关系的数据
3.作用:
1).用来系统传输数据
2).用来存储数据
3).作为软件的配置文件
4.xml语法:
1).文档声明:
注意:文档声明出现在xml的第一行第一列
<?xml version = "1.0" ?>
version 版本号 version属性是必须的属性
encoding 编码集 可选
standalone 是否需要依赖其他的文档 yes/no
2).元素:
1'.元素:标签
标签的写法:
<span></span>  <span/>
标签的嵌套:必须正确的嵌套
xml有且只有一个根标签
2'.元素的命名规范:
区分大小写
不能以数字或_开头
不能以xml开头
元素名称的中间不能出现空格和冒号
3).属性:
一个标签可以有多个属性,每个属性都有自己的名称和取值
属性值一定要使用双引号或单引号引起来
定义属性时必须遵循与标签相同的命名规范
在xml中,标签属性代表的信息,可以通过子元素来描述
4).注释:
<!-- 注释内容 -->
注释不能嵌套
注释不能出现在文档声明之前
5).特殊字符和CDATA区:
转义字符:
< : &alt;
> : &gt;
& : &amp;
" : &quot;
' : &apos;
空格 :&nbsp;
CDATA区:<![CDATA[ 普通文档 ]]>
6).处理指令(PI):用来指挥解析引擎如何解析xml文档内容
例:<?xml-stylesheet type="text/css" href="1.css"?>
7).配置文件:
properties:键值对
xml:可以更好的描述层次关系,因为xml是可扩展的标记语言
二、xml的约束:DTD 和 Schema
1.DTD:文档类型定义:
编写步骤:
1).xml文档需要出现哪些标签、个数是多少
<!ELEMENT 元素名称 元素类型>
2).查询xml的元素类型是什么:简单or复杂
3).在xml中引入dtd
2.DTD引入方式:
1).文档内部:
<!DOCTYPE 根标签 [
<!ELEMENT 元素名称 元素类型>
...
]>
2).文档外部:
本地:<!DOCTYPE 跟标签 SYSTEM "xxx.dtd">
网络:<!DOCTYPE 根节点 PUBLIC "DTD名称" "DTD路径">
3.DTD语法:
1).元素的定义:
1'.语法:<!ELEMENT 元素名称 元素类型>
2'.元素的类型:
#PCDATA :可解析的字符数据
子元素:
EMPTY:空元素
ANY:任意
3'.子元素出现的次数:
+ :一次或多次
* :0次或多次
? :0次或一次
4'.子元素的顺序:
, : 子元素出现必须按照顺序
| : 子元素出现是或关系
2).属性的定义:
1'.语法:<!ATTLIST 元素名称 属性名称 属性类型 属性约束>
2'.属性类型:
CDATA:字符数据(字符串)
枚举:枚举类型
ID:标识的值是唯一的
3'.属性约束:
#REQUIRED :属性必须出现
#IMPLIED:属性是可选的
#FIXED:属性是固定值
默认值:
3).实体的定义:
语法:<!ENTITY 实体名称 实体值>
三、xml解析:(解析技术有多种,常用的DOM和SAX)
1.DOM:Document Object Model 文档对象模型 将XML一次性加载到内存中,形成一个树形结构
2.SAX:Simple API for XML.不需要将文档一次性加载到内存中,边读边解析,事件驱动方式
3.DOM和SAX的区别:
1).DOM一次性将文本加载到内存,形成树形结构,优点是方便进行增加、修改删除操作,缺点是如果文档非常大,容易导致内存溢出
2).SAX是边读边解析,不易导致内存溢出,不能做增加、修改、删除操作
4.Node:节点 所有的内容都是节点,包括元素、属性、文本、文档
5.Jaxp解析过程:
1).DOM解析:
1'.创建解析器工厂
2'.由解析器工厂来创建解析器
3'.通过解析器解析xml文档
4'.通过Document对象获取节点
2).SAX解析:
1'.创建解析器工厂
2'.由解析器工厂来创建解析器
3'.通过解析器解析xml文档--->绑定处理器
6.Dom4j解析过程:
解析过程:
1).获得Document对象
1'.通过读取xml文件,获得document对象
SAXReader reader = new SAXReader();
Document document = reader.read("xxx.xml");
2'.解析xml形式的文本,获取document对象
Document document = DocumentHelper.parseText("<members></members>");
3'.主动创建document对象
Document document = DocumentHelper.createDocument();
2).通过document对xml文档进行CRUD解析操作
3).将文档写入xml文件:(XMLWriter、OutputFormat)
XPath:方便查询XML的节点,dom4j支持XPath
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值