XML解析之DOM4J
来源:互联网 发布:阿里云市值 编辑:程序博客网 时间:2024/05/14 00:45
* 解析xml可以做:
* 如果xml作为配置文件:读取
* 如果xml作为传输文件:写,读
* xml解析思想:
* DOM:将文档加载进内存,形成一颗dom树(document对象),将文档的各个组成部分封装为一些对象。
* 优点:因为,在内存中会形成dom树,可以对dom树进行增删改查。
* 缺点:dom树非常占内存,解析速度慢。
Document
Element
Text
Attribute
Comment
* SAX:逐行读取,基于事件驱动
* 优点:不占内存,速度快
* 缺点:只能读取,不能回写
* xml常用的解析器:
* JAXP:sun公司提供的解析。支持dom和sax。
* JDOM:
* DOM4J:dom for java民间方式,但是是事实方式。非常好。 支持dom
1.导入jar包 dom4j.jar
2.创建解析器
SAXReader reader = new SAXReader();
3.解析xml 获得document对象
Document document = reader.read(url);
实例 解析XML如下(两个案例):
接下如下.XML文件
<书架>
<书 出版社="黑马程序员">
<书名>金瓶梅</书名>
<作者>陈冠希</作者>
<单价>10</单价>
<批发价>20</批发价>
</书>
<书>
<书名>葵花宝典</书名>
<作者>东方不败</作者>
<单价>10</单价>
</书>
</书架>
// 1、得到某个具体的节点内容:第2本书的书名--》葵花宝典
public void testDom4j() throws DocumentException{
//创建一个解析器
SAXReader reader=new SAXReader();
//将xml加载到document对象中
Document document=reader.read("src/Book.xml");
//获取根节点
Element root=document.getRootElement();
//获取根节点姓名
String rootName=root.getName();
//输出‘书架’
System.out.println(rootName);
/*Element bookNode=root.element("书");
System.out.println(bookNode.getName());*/
List list=root.elements();//获取根节点下的所有子节点
Element secondNode=(Element) list.get(1);//获取第二本书对象
String secondNodeName=secondNode.getName();
//输出第二个对象的节点名称("书")
System.out.println(secondNodeName);
//获取第二个对象下的书名节点中的内容
String secondName=secondNode.element("书名").getText();
//输出葵花宝典
System.out.println(secondName);
}
public void test() throws DocumentException{
SAXReader reader=new SAXReader();
Document document=reader.read("src/Book.xml");
Element root=document.getRootElement();
treeWalk(root);
}
public void treeWalk(Element ele){
//获取当前节点的名字
String name=ele.getName();
for(int i=0;i<ele.nodeCount();i++){
//取下标为i的节点
Node node=ele.node(i);
if(node instanceof Element){
treeWalk((Element)node);
}else{
System.out.println(node.getText());
}
}
}
这样解析出xml文件中的内容
- 解析xml之--DOM4J
- XML解析之DOM4J
- 【xml之Dom4j解析】
- XML解析之DOM4J
- 解析XML之DOM4J
- xml解析之DOM4J
- XML解析之dom4j
- XML解析之DOM4J
- XML解析之DOM4J
- xml解析之Dom4J
- XML解析之DOM4J
- xml之DOM4J解析
- xml解析之DOM4j解析
- XML解析之Dom4j解析
- XML解析之dom4j解析
- xml解析之dom4j解析
- XML——XML解析之DOM4J
- Dom4j解析XML学习之简单解析
- Binary Apple Tree URAL
- fzu 2234
- linux-10 网络的基本配置
- 欢迎使用CSDN-markdown编辑器
- Day09
- XML解析之DOM4J
- Liunx(Centos6.5)上安装TensorFlow
- Unity自定义UI组件(十一) 雷达图、属性图
- MYSQL5.7中初次登陆修改root密码出现password子段不存在的情况
- textarea自动换行
- android 内存回收机制
- 2171上升子序列
- 扩增子分析QIIME2. 3粪便菌群移植FMT分析实战
- session机制详解以及session的相关应用