- 浏览: 137219 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
gezi2213:
...
HttpClient及有关jar包详解 -
sailor119:
学习一下!
〖ExtJS〗之ToolBar
.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>
<?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("-----------------------------------");
- }
- }
- }
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
- -----------------------------------
磁盘信息: 分区盘符: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("-----------------------------------");
- }
- }
- }
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("-----------------------------------"); } } }
第三种,利用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("-----------------------------------");
- }
- }
- }
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
- -----------------------------------
磁盘信息: 分区盘符:C 分区容量:8G 目录数:200 文件数:1580 ----------------------------------- 磁盘信息: 分区盘符:D 分区容量:10G 目录数:500 文件数:3000 -----------------------------------
总结:DOM4J性能最好
输出结果为:
- 磁盘信息:
- 分区盘符:C
- 分区容量:8G
- 目录数:200
- 文件数:1580
- -----------------------------------
- 磁盘信息:
- 分区盘符:D
- 分区容量:10G
- 目录数:500
- 文件数:3000
- -----------------------------------
磁盘信息: 分区盘符:C 分区容量:8G 目录数:200 文件数:1580 ----------------------------------- 磁盘信息: 分区盘符:D 分区容量:10G 目录数:500 文件数:3000 -----------------------------------
发表评论
-
关于Java 23种设计模式的有趣见解 .
2012-07-04 23:04 663在网络上流畅很广的 ... -
Java程序员面试中的多线程问题
2012-07-07 22:54 647很多核心Java面试题来源于多线程(Multi-Threa ... -
Java面试宝典2013版(超长版)
2012-10-14 18:21 2750一.Java 基础部分 ..... ... -
Myeclipse6.5添加插件Aptana
2012-10-19 11:30 943这几天有空看看JS的框架,发现JQuery确实有独到之处,难 ... -
1%的灵感最重要和改进沟通-理念
2012-10-11 10:02 756我必须记录自己的一些事情,总结一些感悟,这样,回头过来,我才知 ... -
最有效的学习方式__让学习的车轮转起来<{心法分享}>
2012-09-19 11:07 698言归正传,我一直是一个非常注重学习能力的人,今天就跟大家做一下 ...
相关推荐
Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...
Java解析XML文档是Java开发中常见的任务,XML(Extensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等场景。本项目涵盖了三种主流的Java XML解析方法:SAX、DOM以及DOM4J,并提供了...
Java解析XML文件是一种常见的任务,尤其在处理结构化数据或者与服务器进行数据交换时。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输数据,具有良好的可读性和可扩展性。在Java中,有多种方式来...
Java 解析 XML 文件的 DOM 和 SAX 方式 Java 解析 XML 文件的 DOM 和 SAX 方式是指在 Java 中使用 Document Object Model(DOM)和 Simple API for XML(SAX)两种方式来解析 XML 文件的技术。下面将详细介绍这两种...
### Java解析XML文件:DOM与SAX解析技术详解 #### DOM解析:JAXP与Crimson解析器 DOM(Document Object Model),即文档对象模型,是W3C为XML文档定义的一种标准接口,用于在各种编程语言中操作XML文档。DOM将XML...
"java解析xml文档的常用方法" Java 解析 XML 文档的常用方法有四种:DOM、SAX、JDOM 和 DOM4J。下面对这四种方法进行详细的介绍: 1. 使用 DOM(JAXP Crimson 解析器) DOM(Document Object Model)是一种以层次...
### Java解析XML的四种方式详解 #### 一、DOM(Document Object Model) DOM是一种平台和语言中立的接口,它将XML文档表示为一个树结构,使得程序可以创建、读取、更新或删除树中的元素。DOM实现了W3C的标准,能够...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
### Java解析XML文档方式 #### 引言 随着互联网的发展,XML(可扩展标记语言)因其平台、语言和系统的无关性,在数据交换和集成中扮演着至关重要的角色。本文将深入探讨Java中解析XML的四种主要方法:DOM、SAX、...
Java解析XML文件主要依赖于Java API中的DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等解析器。在本案例中,我们重点讨论DOM解析器,DOMO通常指的是DOM操作。DOM解析器...
本压缩包“Java解析XML.zip”包含了两个关键的第三方库:jaxen-1.1.1.jar和dom4j-1.6.1.jar,它们是Java解析XML文件的重要工具。 首先,让我们了解一下**DOM4J**。DOM4J是一个强大的Java XML API,它提供了灵活且高...
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...
本示例提供了三种不同的方法来解析XML文件,并结合了数据库连接,特别是使用Oracle数据库。下面将详细介绍DOM、SAX和DOM4J这三种解析器的工作原理以及如何在Java中实现它们。 1. DOM(文档对象模型)解析: DOM是一...
Java解析XML文档主要涉及到两种方式:SAX和DOM。本文主要关注基于树和节点的DOM解析方法。DOM解析器将整个XML文档加载到内存中,形成一个树状结构,允许开发者通过API遍历和操作XML文档的每一个部分。 首先,DOM...