dom4j读写xml文件
来源:互联网 发布:阿里云信任付怎么还款 编辑:程序博客网 时间:2024/05/21 06:46
前言:
首次接触dom4j的时候,感觉很神秘,而且对xml文件也有点小畏惧,感觉不好操作,当学习到dom4j可以读取xml文件时,有种学习的冲动,一起来看看吧。
前提:
引入相关的jar文件
.dom4j-1.6.1.jar
. jaxen-1.1-beta-6.jar
读取并解析xml文档:
SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName));
读取的字符编码是按照XML文件头定义的编码来转换。如果遇到乱码问题,注意要把各处的编码名称保持一致即可。
取得Root节点:
Element root=document.getRootElement();
root元素是xml文档的根节点。一切XML分析都是从Root元素开始的。
遍历XML树
// 枚举所有子节点 for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); // do something } // 枚举名称为foot的节点 for ( Iterator i = root.elementIterator(foot); i.hasNext();) { Element foot = (Element) i.next(); // do something } // 枚举属性 for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something }
List<Element> elementList=root.elements(); 获得根元素下的所有子节点。String elementName=element.getName(); 获得element节点的名字String elementValue=element.getText(); 获得element节点的文本节点值Attribute attribute=element.attribute(); 获得element节点的属性 String attrValue=element.attributeValue("attrValue"); 获得属性值
Demo:
xml文件:
<?xml version="1.0" encoding="UTF-8"?> <students><!--顶层节点--> <student> <学生姓名>小熊</学生姓名> <性别>男</性别> <年龄>11</年龄> </student> <student> <学生姓名>小鹿</学生姓名> <性别>女</性别> <年龄>10</年龄> </student> </students>
读取代码:
package com.test.test; import java.io.File; import java.net.MalformedURLException; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class XmlConfigReader { /** * 读取xml_file.xml的配置 * @param args */ //读取xml文件到Document public Document read(String fileName) throws MalformedURLException, DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName)); return document; } //获取xml的根节点(xml是从根节点开始的) public Element getRootElement(Document doc){ return doc.getRootElement(); } //遍历读取xml的数据 public void Traversing(Element root) { for ( Iterator i = root.elementIterator("student"); i.hasNext(); ) {//这里不是从根节点开始的,而是根节点下的第一个节点 Element element = (Element) i.next(); // do something System.out.println(element.elementText("学生姓名")); System.out.println(element.elementText("性别")); System.out.println(element.elementText("年龄")); } } public static void main(String[] args) { String path = "E:\\xml_file.xml"; try { XmlConfigReader xcr = new XmlConfigReader(); Document doc = xcr.read(path);//根据路径path读入xml文件 Element root = xcr.getRootElement(doc);//获得根节点; xcr.Traversing(root);//遍历读取xml的数据 } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
输出结果:
小熊
男
11
小鹿
女
10
总结:
其实还是蛮简单的,困难往往被我们放大,多多实践总结,一切都会so easy!
0 0
- 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文件
- dom4j读写xml文件
- dom4j读写xml文件
- 内部链接与外部链接
- 如何写出让自己满意的代码
- redis简介
- POJ2412(最简单的prim)
- centos7下使用yum安装mysql
- dom4j读写xml文件
- [设计模式]简单工厂模式
- 02图片加载_01_Android_Universal_Image_Loader
- FileInputStream和FileOutputStream应用
- 抽奖
- CentOS7下安装Disconf
- CCCC-GPLT L1-038. 新世界 团体程序设计天梯赛
- CPP_Basic_Code_P5.1-PP5.9.10
- 考试(2017年3月26日) (COCI)