01_xml&dom_sax_dom4j编程

原创 2013年12月03日 23:25:58
一、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
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

XML基础编程解析(DOM SAX Dom4J)

XML编程:利用java程序去增删改查(CRUD)xml中的数据 解析思想: dom解析 sax解析 基于这两种解析思想市面上就有了很多的解析api sun jaxp既有dom方式也有s...

使用dom4j解析、增删改xml文档,xPath技和SAX解析

一、dom4j解析xml 二、删改xml文档 三、xPath技术 一、dom4j解析xml xml 是一种可可扩展标记语言,用于标记电子文件使其具有结构性的标记语言。标记指计算机能理解得信息...

xml的两种解析方式:sax,dom4j

两种解析方式的优缺点:     sax解析:优点:不需要读取整个文件,并且将其储存在内从中,不耗费内存资源,才用触发监听的方式,文件读到哪里触发相应方法。         缺点...

Java中四种XML解析技术【JSP、SAX、JDOM、DOM4J】

在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML...

XML解析三种方式JDom、Sax、Dom4j

对XML进行解析的三种解析方式:JDom、sax、dom4j 一、三种解析的特点: jdom(sun公司)解析:会把xml文档看做一个树,并加载到内存,特别适合做增删改查操作,但当xml文件过大时...

XML--jdom/dom4j/sax解析XML文件

XML1.XML(extensible markup language ):可扩展标记语言。2.XML特点是,标签可以由用户自己随意扩展。比如,html中标签如何写,属性如何写,属性值如何写,都是有规...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)