dom4j解析器
- 1)CRUD的含义:CreateReadUpdateDelete增删查改
- 2)XML解析器有二类,分别是DOM和SAX。
- a)DOM一次性将整个XML文件读到内存,形成一个倒状的树形结构
- b)SAX多次将整个XML文件读到内存
- c)Document对象代表XML文件在内存中的映像
-
3)常用的API如下:
SAXReader saxReader = new SAXReader(); SAXReader是dom4j的核心类
Document document = saxReader.read("*.xml")
Document.getRootElement()
Element.getName()
Element.elements():取得该元素下的所有直接子元素
Element.elementText():从一个元素导航到另一个元素且取出该元素的文本
Element.element("车牌") :从一个元素导航到另一个元素
Element.attributeValue("出产时间"):取得一个元素对应的属性
Element.addElement("单价").setText("40"):添加新元素,同时设置该元素文本的值
OutputFormat format = OutputFormat.createPrettyPrint():使用缩格形式写XML文件
XMLWriter xmlWriter = new XMLWriter(os,format):构造XML写入器
xmlWriter.write(document):将内存中的document对象写入硬盘
firstCarElement.remove(firstCarPriceElement):从直接父元素删除直接子元素
//firstCarPriceElement.getParent().remove(firstCarPriceElement):从直接父元素删除直接子元素car.xml
`<?xml version="1.0" encoding="UTF-8"?>
<车辆清单>
<汽车>
<车牌 出产时间="2010年">奥迪</车牌>
<产地>北京</产地>
<单价>30</单价>
</汽车>
<汽车>
<车牌 出产时间="2011年">本田</车牌>
<产地>广州</产地>
<单价>60</单价>
</汽车>
</车辆清单>
`
读取:
package day2.domx; import java.io.File; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; //使用dom4j解析xml文件 public class Dome1 { public static void main(String[] args) throws Exception { //创建dom4j解析器 SAXReader saxReader = new SAXReader(); //加载需要解析的xml文件 Document document = saxReader.read(new File("src/day2/domx/car.xml")); //取得根元素 Element rootElement = document.getRootElement(); //显示根元素的名称 System.out.println(rootElement.getName()); //取得根元素下的子元素 List<Element> elementList = rootElement.elements(); System.out.println("共有" + elementList.size()+"辆车"); for(Element e:elementList) { System.out.println("车牌:" + e.elementText("车牌")); System.out.println("产地:" + e.elementText("产地")); System.out.println("出产时间:" + e.element("车牌").attributeValue("出产时间")); System.out.println("------------------------------"); } } }
结果:
车辆清单
共有2辆车
车牌:奥迪
产地:北京
出产时间:2010年
车牌:本田产地:广州出产时间:2011年
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。