xml 的解析

====xml的解析====
1.DOM:Document Object Model
把xml文件内存中加载成树型结构
原理:整个树构造完毕之后,开始增删改查操作
好处:可以在节点中移动,获得数据,修改数据,增加节点,删除节点
缺点:
1)如果文档过大,装载时间延迟明显.
2)如果只是读一小部分数据,装载整个文档浪费空间
3)编码繁杂
2.SAX:Simple API for XML
原理:流的方式,解析可以立即开始,不保存任何节点的数据.(只读)
优点:读取速度快,只读小部分数据,不需要全部加载
缺点:无法节点移动,无法修改删除数据

3.JDOM:
使用java API,改进DOM API,大量使用java API中现有的结构.

4.DOM4J:
JDOM的智能分支,扩充了灵活性,增加了一些额外的功能.
是目前综合性能最好的API.
三大框架使用DOM4J作为自己的xml解析器.

5.DOM4J的使用
step1:导入dom4j的jar包
step2:
1)读xml文件
//1.获得解析器
SAXReader reader = new SAXReader();
//2.解析器解析文件,获得文档对象
Document doc = reader.read(new File("src/books.xml"));
//3.获得根元素的对象
Element root = doc.getRootElement();
---Element中方法:
getName():获得标签名
getText():获得标签之间的内容
elementText("标签名"):根据标签名获得标签之间的内容
AttributeValue("属性名"):根据属性名获得属性值
elementIterator():获得子元素迭代器
attributeIterator():获得该元素下的属性迭代器
--Attribute中的方法:
getName():获得属性名
getValue():获得属性值
2)写xml文件
//1.创建Document对象及初始化里面的内容
Document doc = DocumentHelper.createDocument();
常用方法:
doc.addElement("标签名"):在文档对象中添加元素 element.addElement("标签名"):在元素中添加子元素 element.setText("文本内容"):设置标签中的文本
element.addAttribute("属性名","属性值"):
设置标签中的属性及属性值

//2.使用流吧Document对象写入文件
FileWriter fileWriter = new FileWriter(new File("文件路径"));
//设置缩进
OutputFormat xmlFormat = OutputFormat.createPrettyPrint();
//设置文件编码
xmlFormat.setEncoding("GBK");
//使用dom4j的包装写入流,输入参数:文件流,格式
XMLWriter xmlWriter = new XMLWriter(fileWriter,xmlFormat);
//写入文件
xmlWriter.write(doc);
//关闭流
xmlWriter.close();

作业:
模拟xml作为数据载体,在不同数据库之间交换数据
myuser(id,name,pwd)
myuser1(id,name,pwd)


6. xPath:在xml文件中定位节点的方式
导入包
xPath语法:
/:根路径(从doc节点选取) /bookstore
//:遍历查找 如 //title 在当前文档中找title
. :当前节点
..:父节点
选取条件:
父节点[子节点='']:通过子节点的内容查找父节点
节点[@属性='']:通过节点上的属性查找节点.
父节点[子节点[@属性='']]:通过子节点的属性查找父节点

注意:
  节点1/节点2[]:查找的是节点2.










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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值