[02]XML基础笔记

来源:互联网 发布:批量询价 域名 编辑:程序博客网 时间:2024/05/22 04:41

一、概念和作用

XML 可扩展标记语言

特点 HTML XML 语法特点: 松散的,不严谨的 相对严谨 标签特点: 固定的 自定义标签

作用:
负责网页的结构(布局)
*1)软件的配置文件 struts2 spring hibernate
2) 作为数据存储的容器(小型数据库)

二、XML作用

2.1 作为软件的配置文件(重点)

1)tomcat服务器配置文件
2)三大框架的配置文件
3)其他框架的配置文件

2.2 作为数据存储的容器(小型数据)

把数据存储为xml格式

三、XML语法

xml文件后缀.xml

3.1 标签
语法: <student>xxxx</student> 或者 <student/>

注意:
1)大小写严格区分的
2)开始标签和结束标签必须配对
3)不能用数字开头
4)标签名不能带有空格
5)建议不要使用xml备选关键词:xml Xml XML
6)一个xml文件有且仅有一个根标签

3.2 属性

语法:<student id="001"/>
注意:
1)属性值必须使用引号包括,可以同时双引或者单引,但不能单双混用。
2)在一个标签中不能出现同名的属性

3.3 注释

语法:<!-- xml注释 -->

3.4 文档声明

语法:<?xml version="1.0" encoding="utf-8"?>
注意:
1)必须放在文档的第一句
2)encoding:表示解析器使用什么编码解析该文档内容

3.5 特殊字符

>      &gt;<      &lt;&      &amp;空格   &nbsp;...... 

3.6 处理指令(已经过时)

作用:在xml中引用一个css文件
语法:<?xml-stylesheet type="text/css" href="person.css"?>

四、XML约束

4.1 两个概念

良好的XML:符合xml语法的xml文件,就是良好的xml
有效的XML:除了符合xml语法,还有符合xml约束规则,就是有效的xml

4.2 XML约束语法

1)dtd约束:语法简单,功能单一
2)schema约束:语法复杂很多,功能强大,它的出现代替dtd约束

4.3 dtd约束语法

1)如果在xml文件中使用dtd
        a)内部使用:
        <!DOCTYPE note [          <!ELEMENT note (to,from,heading,body)>          <!ELEMENT to      (#PCDATA)>          <!ELEMENT from    (#PCDATA)>          <!ELEMENT heading (#PCDATA)>          <!ELEMENT body    (#PCDATA)>        ]>

b)外部使用:

<!-- 导入dtd文件--><!DOCTYPE note SYSTEM "note.dtd">
2)约束标签:

语法:<!ELEMENT 元素名称 类别>或者 <!ELEMENT 元素名称 (元素内容)>

类别:
EMPTY: 空元素
(#PCDATA): 普通字符串(不能包含标签)
ANY: 任何内容(包含标签)
元素内容:

顺序问题:
, : 依次出现
例如:a,b,c 按顺序出现a,b,c
| : 枚举出现
例如:a|b 只能出现a或者b

数量问题:
默认出现1次
*: 出现0或多次
+:出现1或多次
?: 出现0或1次

3)约束属性

语法:<!ATTLIST 元素名称 属性名称 属性类型 默认值>

默认值:属性是否需要填写
#REQUIRED 必须填写的
#IMPLIED 非必填的
#FIXED value 固定值 (可以不填,但是如果一旦填写,值就是固定的)

属性类型:属性值可以写那些类型
CDATA 普通字符串
(en1|en2|...) 枚举(任选其一)
ID 唯一(在一个xml文件中多个标签不允许出现同值的属性)

五、XML解析

5.1 概念

XML解析,使用java代码去操作xml文件

5.2 解析模式

DOM解析:一次性把整个xml文件读入内存,构建一颗dom树!(内存占用大)

SAX解析:读取一点xml内容,解析一点(内存占用小)

5.3 解析工具

1)dom解析工具

jaxp的dom
jdom
dom4j (*)

2)sax解析工具

jaxp的sax (*)

5.4 dom4j的开发步骤

1)找到dom4j的开发包,导入需要的jar包 www.dom4j.org
2)读取xml文件

//1.创建解析对象SAXReader sr = new SAXReader();//2.解析xml文件   .代表当前项目Document doc = sr.read("./src/student.xml");System.out.println(doc);

5.5 关键的方法

读标签:

    getRootEleement()  根标签    element("xxx") 获取第一个指定名称的子标签    elements();   获取所有子标签,返回List    elementIterator()  获取所有子标签,返回Iterator    elements("xxx") 获取指定名称的所有子标签

读取属性:

attribute("xx") 根据名称获取属性对象    getName()    getValue()attributeValue("xx") 根据名称获取属性值attributes()  获取所有属性对象,返回List<Attribute>

读取文本内容:

getText() 获取当前标签的文本elementText() 获取子标签的文本  
0 0
原创粉丝点击