xml学习笔记
1、HTML与XML的区别
(1) html语言中存在着几个缺陷(松散,不区分大小写,可以不匹配),针对这个不足点提出了xml(extend markup lanuage)标签语言(可扩展标记语言)。
html的标记是固定的,但是XML中的标记是不固定的,可扩展的。
html负责页面结构,
(2) xml来描述关系的数据结构
1、作为软件的配置文件)
xml配置使用场景:
1)框架(strust2,hibernate,spring)中,xml作为框架的配置文件
2)Tomcat服务器软件配置文件(web.xml,server.xml)
2、装载数据,作为一种小型的数据库;
xml的语法:
标签:
<student></student>
<student/> <!--表示一个空标签-->
标签:
1)分带标签体的标签,也有空标签
2)标签是区分大小写的
3)标签一定要配对
4)标签中不能含有空格
5)不能使用数字开头
6)可以使用下划线开头
7)在一个xml文件中,有且只有一个根标签。
属性:
<student id="1">student</student> 其中的ID部分就是属性部分
1)属性值一定要用单引号或者是双引号包含,不能省略,也不能单双混用
2)一个标签里面可以包含多个属性,但是不能出现同名的属性
注释:
xml的注释和html的注释是一样的。
文档声明:
<?xml version="1.0" encoding="utf-8"?>
version:xml的版本号
encoding:表示解析xml文档所使用的码表
xml的编码问题:
1)xml的内容保存编码
2)解析xml文件内容的编码
以上两个编码一定要保持一致,才能避免中文乱码的问题
转义字符:
和html的转义字符一致
<student id="1">student<name>张三</name></student>
CDATA块:
将CDATA中的内容原样输出。
<![CDATA[
<student id="1">student<name>张三</name></student>
]]>
处理指令(基本上过时了,这个在功能上和html是相同的):
只显示标签内容,不显示标签名称
<?xml-stylesheet type="text/css" href=""?>
XML解析方式:
1)DOM解析
当xml解析引擎解析完xml文件后,会把xml文件的各个部分分装成对象,通过对象获取xml文件信息,甚至改变xml文件的
DOM解析工具:
sun官方jaxp
jdom
dom4j工具:三大框架读取xml文件的程序。
2)SAX解析
XML中空格和换行都会被解析到,但是Java中的空格和换行是没有意义的,只是为了代码格式的美观。
XML解析
采用的是dom的解析方法:dom4j的工具
其解析步骤主要包括:
查:
标签:
element("name");
elements("name");
elements();
getName();标签名称
getRootElement();根标签
属性:
atrributeValue("name")
atrribute("name")
atrributes()属性对象
getName()
getValue()
文本:
getText()当前标签文本
elementText("name")子标签文本
增:
DocumentHelper.createDocument() 文档
addElement("name");标签
addAtribute("name","value")属性
改:
setvalue()修改属性值
addAtribute()修改属性值
setText()修改文本内容
删除:
detach() 删除标签、属性值
getParent().remove(标签/属性值)