xml和dom4J

一、 xml定义:是可扩展的标志性语言,标记性文档,可以使用w3c组织制定的dom技术来解析

二、 作用:

a. 用来保存数据,这些数据具有自我描述性
b. 作为项目模块的配置文件
c. 作为网络传输数据的格式(现在以JSON)为主

三、 文档声明

  1. new File
  2. 命名:文件名.xml
  3. 声明: <?xml version="1.0" encoding="utf-8" ?>
    version: xml的版本 encoding: xml文件的编码

四、 元素(标签)

  1. 定义:指从开始标签到结束标签的部分
  2. 格式 <标签名>封装的数据</标签名>
    单标签 <标签名/> <br/>换行 <hr/>水平线
    双标签 <标签名>封装的数据</标签名>
  3. 注意
    a. 标签名大小写不敏感
    b. 标签有属性,有基本属性和事件属性
    c. 标签要闭合(不闭合,html中不报错)
    d. 标签前后的大小写要一致
    e. 标签必须正确嵌套

五、 xml命名规则

  1. 名称可以包含字母,数字 其他字符
  2. 名称不能以数字 标点符号开头
  3. 名称不能包含空格

六、 xml文档必须要有根元素

  1. 跟元素就是顶级元素
  2. 没有父标签的元素是顶级元素
  3. 根元素是没有父标签的顶级元素,而且是唯一一个才行

七、 xml属性

  1. xml的属性值必须加引号
  2. 特殊符号的转译

&gt
< &it

八、 xml注释

<!--注释-->

九、 文本区域(CDATA区)

  1. 作用:告诉xml解析器:里面的内容只是纯文本

十、 xml的解析技术

1. 两种xml解析技术:DOM Sax

2. 第三方解析:

jdom 在dom基础上进行了封装
dom4j 又对jdom进行了封装
pull主要用在Android手机开发,是在跟sax非常类似都是时间机制解析xml文件

3. Dom4j类库的使用

a.	先加载xml文件创建Domcument对象
b.	通过Domcument对象拿到根元素对象
c.	通过根元素.elelemts(标签名);可以返回一个集合,这个集合里放着.所有你指定的标签名的元素对象
d.	找到你象用修改,删除的子元素,进行相应的操作
e.	保存在硬盘上

4. 步骤

a.	创建一个com.atguigu.poji包
b.	创建一个book类
c.	写上标签的属性,进行封装 构造器 toString方法
d.	创建一个lib文件用来存放jar包
e.	将jar包复制,文件名中选择past将jar包导入
f.	将jar包添加到类路径:右键单击jar包—Add as Library
//build path---add to build path
g.	在book类的文件夹中创建一个Dom4jTest类

第一步: 把xml文件生成document对象
创建一个SaxReader对象
(创建一个SaxReader输入流,去读取xml配置文件)

Document document=saxReader.read("src/books.xml");
(导入 dom4j.Domcument)
System.out.println(document);

第二步: 读取books.xml文件生成book类
创建一个test2方法
读取book.xml文件

SAXReader reader =new SAXReader()
//在Junit测试中,相对路径是从模块名开始算
Document read=reader.read("src/books.xml");
//通过Document对象获取根元素<books>
Element rootElement=document.getRootElement;
System.out.println(rootElement);
//通过根元素获取book标签对象
//element elements都是通过标签名查找子元素,多个子元素用elements
List<Element> books=rootElement.elements("book");
	//遍历,处理每个book标签转换为Book类
	//asXML() 把标签对象 转换为标签字符串
	//确定book标签
for(Element book:books){
System.out.println(book.asXML())
Element nameElement=book.element("name");
  //得到书名
System.out.println(nameElement.asXML());
  //得到内容
  //getText();可以获取标签中的文本内容
String nameText=nameElement.getText();
System.out.println(nameText);
  //直接获取标签名的文本内容
String priceText = book.elementText("price");
System.out.println(priceText);
String authorText=book.elementText("author");
  //获取属性值
String snValue=book.attributeValue("sn");
  //打印全部
System.out.println(
new Book
(snValue,nameText,Double.parseDouble(priceText),authorText))
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值