XML笔记

一XML:可扩展的标记语言  eXtensive Markyp Language

HTML:超文本标记语言,做静态网页 HyperText Markup Language

标记语言:<标签名> </标签名>

可扩展:标签名是自定义的

XML和HTML的区别

(1)XML标签名是自定义的

         HTML标签名是预定义的,由W3C组织预定好的 WorldWider Web Consortium

(2)HTML重点是用来显示数据,做静态网页的

         XML重点是用来保存数据,传输数据,保存配置信息

 

二XML的作用

(a)XML用来保存数据,是轻量级的保存数据的方式

         保存数据的规范统一,解析数据的方式统一

         io/file保存数据

         保存数据的规范不统一,解析数据的方式不统一

         数据库保存数据,数据库不是一个轻量级的保存数据的方式

         安装软件,启动软件,重点在操作数据

(b)XML是跨平台跨语言的一门技术,大部门主流的语言都支持XML(java,C,C++,PHP……)

(c)保存个性化连接(保存配置信息)

(d)重要文件web.xml,JavaEE的一个非常重要的配置文件,框架中也有很多xml文件

(e)在网络传输中也会使用xml数据

 

 

三:XML的语法

开始标签:<标签名>

结束标签:</标签名>

元素:由开始标签和结束标签组成的

元素内容:开始标签和结束标签中间的内容

         元素内容可能出现的情况:

                   (1)元素内容是空内容------空元素

                                     <name></name>也可以写成<name/>

                   (2)元素内容是字符内容:由字符,空字符,实体组成

                                     <name>zhangsan</name>

                   (3)元素内容是另一个元素-----子元素

                                     <stu><name>zhangsan</name></stu>

                   (4)元素内容由字符和子元素组成------混合元素

                                     <stu>

                                               <name>zhangsan</name>

                                     </stu>

                            stu由name子元素和2个空白字符组成

 

 

 

 

四XML的语法规则

         作用:XML的语法规则就是用来规定XML文件是一个良构的XML文件。

                   良构的XML文件:结构良好的XML文件

                   写一个XML文件必须要满足它是一个良构XML文件

(1)第一行必须写指令处理       <?xml  ?>

                   在指令处理中可以写版本号:version=”1.0”,编码方式:encoding=””

(2)有且只有一个根元素

(3)元素的使用规则

                   1元素必须有开始和结束标签

                   2空元素<name/>

                   3属性必须放在开始标签中

(4)元素的嵌套规则

                   元素除了根元素必须嵌套在外围元素的开始和结束标签中

(5)元素和属性的命名规则

                   1以字母和下划线开头,由字母,下划线”_”,点号”.”,破则号”-“,数则组成的

                   2标签名区分大小写

                   3名字中不能出现空格

                   4不能使用W3C的保留字

(6)属性的使用规则

                   1属性是给元素添加额外的信息

                   2格式:属性名=属性值       属性是键值成对出现,有属性名必须添加属性值

                   3属性值需要用‘ ’,或者“ ”引起来

                   4属性必须放在元素的开始标签中

                   5一个元素可以有多个属性,多个属性之间用空格隔开,属性名必须唯一

 

五XML的注释

<!--注释内容-->

 

六PCDATA,CDATA,实体

PCDATA:可以被XML文档解析器解析,文档解释器:浏览器,SAX,DOM,DOM4j

                   但是有些字符想被解析,必须借助实体

CDATA:不可以被XML文档解析器解析     就是字符内容

                   格式:<![CDATA[显示的内容]]>

实体:用来替换一些东西,简化内容

         定义实体:<!ENTITY实体名 实体内容>

         使用实体:&实体名;

         定义实体需要<!DOCTYPE>标签中

         一个XML文件只有一个<!DICTYPE>标签,并且放在指令处理的下面

         格式:<!DOCTYPE根元素[ //定义实体 ]>

 

 

定义混合元素的固定格式

(#PCDATA | 子元素1 | 子元素2)*

 

把属性定义成ID类型

         属性值必须满足命名规则

         属性值必须唯一

 

引入外部的DTD

<!DOCTYPE 根元素 SYSTEM “dtd文件的路径”>

SYSTEM:引入本地的DTD文件

PUBLIC:引入网络中的DTD文件

 

声明元素

<!ELEMENT 标签名 (内容模式)>

内容模式:EMPTY          ANY           Elements(包含子元素/标签)           Mixed:混合元素

 

声明属性

<!ATTLIST 标签名 属性名 属性类型 属性默认值>

<!ATTLIST 标签名 属性名1 属性类型1 属性默认值1 

                                     属性名2 属性类型2 属性默认值2

                                     ……..>

 

 

 

1.JAXP

2.SAX解析:基于事件处理的机制进行解析,提供事件进行处理。

                            SAX解析器从xml文件的开头到结尾顺序解析,相当于扫描机。

         碰到xml文件中的开始标签,结束标签,指令处理,文档解析结束都会触发相应的事件

         程序员应该做的事情:提供相应的事件,并在事件中写相应的业务来哟机代码

         SAX解析的步骤

                   第一种方式

                   获取SAX解析器的工厂对象 SAXParserFactory

                   从SAX解析器的工厂对象中获取SAX的解析器,SAXParser

                   使用SAX解析器解析XML文件

 

                   第二种方式

                   根据XMLReaderFactory获取XMLReader对象

                   创建继承了DefaultHandler的子类对象,传递给XMLReader对象

                   使XMLReader对象解析XML文件

 

3.DOM解析:基于Tree的处理机制进行解析。将XML文档全部载入到内存中并且转化成一棵Tree,记下来基于该Tree进行解析。是节点的集合。13种类型的节点

         Documentnode:文档节点,代表的是整个XML文档,最大范围的节点

         Elementnode:元素节点,<name>zhangsan</name>

         Attributenode:属性节点 <name id=”1”/>

         Textnode:文本节点     zhangsan

         node是所有节点的父节点

         DOM解析的步骤

                   1获取DON解析器的工厂对象

                   2从工厂对象中获取DOM解析器

                   3解析XML文档获取Document节点

 

4.DOM4J解析:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值