XML基本概念简介
1.1引入
HTML超文本标记语言
HTML语法是很松散的!
1标签不区分大小写
2.标签可以不匹配。
由W3C组织 针对HTML的语法缺陷,设计了另一门语言xml
HTML语言的标签是固定的。
1.2xml语言
可扩展标记语言
HTML vs xml
概念 超文本标记语言 可扩展标记语言
标记数量 是固定的 是不固定的,可扩展
作用 负责网页的结构 1)描述代关系的数据结构(作为软件的配置文件)
properties配置文件键值对 name =eric passwork=12456
xml可以描述包含于被包含的关系
配置使用场景:框架(struts2,hibernate,spring)
通用的代码+配置文件
xml 作为框架的配置文件
2.)Tomcat服务器的软件的配置文件也是xml
2.转载数据(作为小型的“数据库”)
xml的作用
2.1作为软件的配置文件
PC学生管理系统-》添加学生-》name=“张三,age=20-》提交到后台程序-》把数据存储到数据库中
俩台通讯条件
IP地址和端口
java代码 根据IP和端口 连接数据库服器IP改变会改变代码
properties
IP=211.34.21.43
prot=20
xml 文件
<host-list>
<host id="main">
<ip>21134.21.43</ip>
<port>20</port>
</host>
<host id="backup">
<ip>21134.21.44</ip>
<port>20</port>
</host>
,</host-list>
PC mysql
PC数据库服务器 oracle 数据库: 211.34.21.43 20
PC数据库服务器 oracle 数据库: 211.34.21.44 20
2.2作为小型的数据库
教师管理系统 教师信息 姓名 工龄 邮箱
传输数据
字符串 张三 |20|zhangsan@qq.com|...|...(格式不是行业规范的,不通用)
xml格式
<teacher-liat>
<teacher>
<name></name>
<email></email>
...
</teacher>
<teacher>
<name></name>
<email></email>
...
</teacher>
</teacher-list> (xml是W3C组织制定的标准)
json
获取字符串 ,截取字符串数据。
财务系统
发邮件给老师
邮箱地址 教师姓名
方案1:财务系统中也存储了一套教师的信息,数据维护的成本比较高
方案2:财务系统使用的教师数据从教师管理系统中发送过来的。
3.xml语法
3.1标签
<student>学生</student>
注意:
1.)分带标签体的标签,页可以使空标签。(<student/)
2)标签是大小写区分的
3)标签一定要配对
4)标签中间不能还有空格
5)不能以数字开头 但可以用字符或下划线开头
6)如果没有指定名称空间的话,标签名中间不能包含冒号
7)在xml文件中有仅有一个根标签
3.2属性
<student id="1"></student>
注意
1)一个属性分为属性名和属性值,属性名和属性值之间用=号分割
2)属性值一定要使用单引号或双引号并且必须单双配对,不能省略
3)一个标签可以包含多个属性,但是不能出现同名的属性。
必须有引号,且引号必须配对
**
3.3注释
**
编码 字符-》字节(查码表)默认GBK 另存为设置
解码 字节-》字符(查码表)默认utf-8 文档声明
3.4文档声明
3.5转义字符
**
和HTML转移字符
**
3.6CDATA块
**
把CDATA块中的内容全部原样输出
<![CDATA[
]]>
<stduent>
<![CDATA[
<name>学生</name>
<age> 18</age>
]]>
</stduent>
3.7处理命令
<?xml-stylesheet type="text/css" href="" ?>
**
4.IO BufferReader 字符流 不可取
**
XML解析方式
1)DOM解析
当xml解析引擎解析完xml文件之后,会吧xml文件的各个部分封装成对象,通过对象获取xml文件的信息,甚至改变xml文件的信息
这种做法叫做dom编程
xml解析引擎会把xml文件在内存中创建一个树状结构,这棵树上的分支,叫节点(Node)
xml信息 dom 对象
节点 Node对象
节点名称
节点类型(标签,属性,文本)
标签 Element对象
标签名
包含属性
包含文本
属性: Attribute对象
属性名
属性值
文本 Text对象
文本内容
Document对象,代表一个xml文件,从Document对象开始获取xml文档树上的每个节点(标签节点,属性节点,文本节点)
1.)获取节点对象
2.获取或设置节点对象
***
2)SAX解析
**
4.2DOM解析的工具
**
Sun官方jaxp
jdom工具
dom4j工具 三大框架读取xml文件的程序(非官方的)
dom for java
hierbnate
**
4.3dom4j工具使用
**
1.)到dom4j的官网上下载
2.)导入dom4j的支持的jar包
dom解析方法
dom4j的工具
查
标签 element(“name")
elements("name");
elements();
getName()标签名称
getRootElement()根标签
属性
attributeValue("name")属性值
attribute(”name");对象
attributes()属性对象列表
getName()属性名
getValue();属性值
文本
getText():当前标签文本
elementText(“name”)子标签的文本
增
DocumentHelper.createDocument(); 文档
addElement("name");标签
addAttribute("name","value");属性
改
setValue()修改属性值
addAttribute(“同名”)修改属性值
setText()修改文本内容
删除
detach() 标签 属性
getParent().remove()(属性/标签)