java解析xml文件(三种方式-(dom ,jdom ,dom4j)
来源:互联网 发布:tk的域名 编辑:程序博客网 时间:2024/05/21 04:17
test.xml文件
- <?xml version="1.0" encoding="UTF-8"?>
- <HD>
- <disk name="C">
- <capacity>8G</capacity>
- <directories>200</directories>
- <files>1580</files>
- </disk>
- <disk name="D">
- <capacity>10G</capacity>
- <directories>500</directories>
- <files>3000</files>
- </disk>
- </HD>
第一种,利用dom方式解析xml 文件,无需jar包
- package Dom;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.NodeList;
- public class DomXML {
- public static void main(String[] args)throws Exception {
- //得到DOM解析器的工厂实例
- DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
- //从DOM工厂中获得DOM解析器
- DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder();
- //声明为File为了识别中文名
- Document doc = null;
- doc = dbBuilder.parse("F:/work_sapce_petroskill/Spring/src/Dom/test.xml");
- //得到文档名称为Student的元素的节点列表
- NodeList list = doc.getElementsByTagName("disk");
- //遍历该集合,显示结合中的元素及其子元素的名字
- for(int i = 0; i< list.getLength() ; i ++){
- Element element = (Element)list.item(i);
- String name=element.getAttribute("name");
- String capacity=element.getElementsByTagName("capacity").item(0).getFirstChild().getNodeValue();
- String directories=element.getElementsByTagName("directories").item(0).getFirstChild().getNodeValue();
- String files=element.getElementsByTagName("files").item(0).getFirstChild().getNodeValue();
- System.out.println("磁盘信息:");
- System.out.println("分区盘符:"+name);
- System.out.println("分区容量:"+capacity);
- System.out.println("目录数:"+directories);
- System.out.println("文件数:"+files);
- System.out.println("-----------------------------------");
- }
- }
- }
输出结果为:
- 磁盘信息:
- 分区盘符:C
- 分区容量:8G
- 目录数:200
- 文件数:1580
- -----------------------------------
- 磁盘信息:
- 分区盘符:D
- 分区容量:10G
- 目录数:500
- 文件数:3000
- -----------------------------------
第二种,利用Jdom方式解析xml文件,需要下载jdom.jar(见附件)
- package Dom;
- import java.util.List;
- import org.jdom.Document;
- import org.jdom.Element;
- import org.jdom.input.SAXBuilder;
- public class JDomXML {
- public static void main(String[] args) throws Exception{
- SAXBuilder sb=new SAXBuilder();
- Document doc=sb.build(Dom4jXML.class.getClassLoader().getResourceAsStream("Dom/test.xml")); //构造文档对象
- Element root=doc.getRootElement(); //获取根元素
- List list=root.getChildren("disk");//取名字为disk的所有元素
- for(int i=0;i<list.size();i++){
- Element element=(Element)list.get(i);
- String name=element.getAttributeValue("name");
- String capacity=element.getChildText("capacity");//取disk子元素capacity的内容
- String directories=element.getChildText("directories");
- String files=element.getChildText("files");
- System.out.println("磁盘信息:");
- System.out.println("分区盘符:"+name);
- System.out.println("分区容量:"+capacity);
- System.out.println("目录数:"+directories);
- System.out.println("文件数:"+files);
- System.out.println("-----------------------------------");
- }
- }
- }
输出结果为:
- 磁盘信息:
- 分区盘符:C
- 分区容量:8G
- 目录数:200
- 文件数:1580
- -----------------------------------
- 磁盘信息:
- 分区盘符:D
- 分区容量:10G
- 目录数:500
- 文件数:3000
- -----------------------------------
第三种,利用dom4j方式解析xml文件,需要下载 dom4j-1.6.1.jar(见附件)
- package Dom;
- import java.util.Iterator;
- import org.dom4j.Document;
- import org.dom4j.Element;
- import org.dom4j.io.SAXReader;
- public class Dom4jXML{
- public static void main(String[] args) throws Exception {
- //创建文件对象
- java.io.File file=new java.io.File("F:/workSapce/javaXML/src/Dom/test.xml");
- //创建一个读取XML文件的对象
- SAXReader reader=new SAXReader();
- //创建一个文档对象
- Document document=reader.read(file);
- //获取文件的根节点
- Element element=document.getRootElement();
- for(Iterator i=element.elementIterator("disk");i.hasNext();){
- //获取节点元素
- element=(Element)i.next();
- String name=element.attributeValue("name");
- String capacity=element.elementText("capacity");//取disk子元素capacity的内容
- String directories=element.elementText("directories");
- String files=element.elementText("files");
- System.out.println("磁盘信息:");
- System.out.println("分区盘符:"+name);
- System.out.println("分区容量:"+capacity);
- System.out.println("目录数:"+directories);
- System.out.println("文件数:"+files);
- System.out.println("-----------------------------------");
- }
- }
- }
输出结果为:
- 磁盘信息:
- 分区盘符:C
- 分区容量:8G
- 目录数:200
- 文件数:1580
- -----------------------------------
- 磁盘信息:
- 分区盘符:D
- 分区容量:10G
- 目录数:500
- 文件数:3000
- -----------------------------------
0 0
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- android解析XML总结(SAX、Pull、Dom三种方式)附带DOM4J、JDOM
- android解析XML总结(SAX、Pull、Dom三种方式)附带DOM4J、JDOM
- DOM,SAX,JDOM,DOM4J 四种方式解析xml
- DOM,SAX,JDOM,DOM4J 四种方式解析xml
- 解析xml的四种方式:DOM JDOM DOM4J SAX
- xml---4种解析方式dom,sax,jdom,dom4j
- 解析xml文件的三种方式(sax ,dom ,dom4j)
- DOM,SAX,JDOM,DOM4J四种xml文件解析方式小结
- JAVA解析xml DOM SAX JDOM DOM4J
- JAVA解析XML文件(三)---JDOM方式解析
- java解析xml的4种方式:1、Dom,2、SAX,3、Jdom,4、dom4j
- java 解析xml的四种方式:sax,dom,dom4j,jdom
- Java四种方式操作 xml,DOM|SAX|JDOM|DOM4J
- Java 读取网页简易程序
- 数据保护方案的演进
- HTTP协议详解
- 论马尔可夫链的稳定状态与MFC结合在天气预测中的应用
- java 对象序列化
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- 【模版】最小表示法
- CSS中zoom:1的作用 ,小标签大作用
- 【原创】swarm源码分析(4)---Scheduler和Api
- 20160512 GreenPlum10 SharedNothing架构、数据迁移
- 游戏开发的职场前景不容乐观
- 如何让mybatis打印出执行的sql
- jenkins的svn路径中文问题
- 常用正则表达式