- 浏览: 294351 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
狂盗一枝梅:
...
POI 实现合并单元格以及列自适应宽度 -
fireinjava:
补充一点:要在写完所有单元格后再调用自适应这个方法。
for ...
POI 实现合并单元格以及列自适应宽度 -
a114d:
还自带广告,哈哈,这个文件现在怎么不能下载,只是在线浏览呢?
使用ant部署eclipse开发的web工程到tomcat -
唐敬原:
非常感谢,很好!!!!!!!!!!
使用pinyin4j获取汉字拼音首字母或全拼 -
心之野海:
我的一个都检测不出来
JMF捕获摄像头数据存入本地磁盘(java 多媒体)
XML(Extensible Markup Language)即可扩展标记语言,这个东东的详细情况可以参见百度百科,我主要说下它的两大作用1.存储数据;2.跨平台的数据传输(也就是应用于不同的平台之上,有桥梁的作用,我是这么理解的,呵呵)。ok,现在说说对xml文件的解析,java本事对xml有一套规范和解析方式,但是不是很好用,目前比较常用的其他解析类库有jdom和dom4j,相比之下据说dom4j相对强大一点,那我们就用dom4j吧。
首先需要说明的是这个技术的学习方略是按照官方的文档进行。并没有参见其他的文章,虽然文档时英文的,虽然我的英语很菜,但还是能看懂的。相当于官方说明的翻译工作吧。
1.下载dom4j的压缩包,个人比较喜欢去官方找。英文的网站找google大神就搞定了。
2.在eclipse下新建java工程,放入dom4j要用到的jar包,这里要用到两个dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar个,后者是在用到xpath的时候用,负责会报错!
3.打开下载的安装包下的docs目录下index.html文件,一大堆英文出来了,点左侧的那个quick start快速开始,翻译工作开始:
Parsing XML解析xml文件,第一种是官方文档上的,二三是我自己加的:
/** * 解析XML文件,这里有多重读取方式,这里是URL * @param url * @return * @throws DocumentException */ public Document parse(URL url) throws DocumentException{ SAXReader reader = new SAXReader(); return reader.read(url); } /** * 采用用路径构造文件的方法 * @param path * @return * @throws DocumentException */ public Document parse(String path) throws DocumentException{ SAXReader reader = new SAXReader(); return reader.read(new File(path)); } /** * 用文件流对象构造xml文档 * @param in * @return * @throws DocumentException */ public Document parse(InputStream in) throws DocumentException{ SAXReader reader = new SAXReader(); return reader.read(in); }
Using Iterators用迭代打方式解析xml文件的内容
/** * 遍历xml文件 * @param document */ public void iteratorFind(Document document){ Element root = document.getRootElement(); //从根节点遍历 for(Iterator i = root.elementIterator();i.hasNext();){ Element element = (Element) i.next(); System.out.println(element.attributeValue("name")); System.out.println(element.getText()); } //从某一节点开始遍历 for(Iterator i = root.elementIterator("foo");i.hasNext();){ Element element = (Element) i.next(); //做一些事情 } //遍历属性 for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something } }
Powerful Navigation with XPath强大的xpath导航
/** * X-path的查找方式 * @param document */ public void xpathFind(Document document){ List<Element> list = document.selectNodes("/root/author"); for(int i=0;i<list.size();i++){ Element element = list.get(i); String name = element.attributeValue("name"); System.out.println(name); } System.out.println(list.size()); Node node = document.selectSingleNode("/root/author"); //采用@+属性名的方式获得属内容 String name = node.valueOf("@name"); String text = node.getText(); System.out.println(name + text); }
Fast Looping 快速循环,实际上和iterator差不多
public void treeWalk(Document document) { treeWalk( document.getRootElement() ); } public void treeWalk(Element element) { for ( int i = 0, size = element.nodeCount(); i < size; i++ ) { Node node = element.node(i); if ( node instanceof Element ) { treeWalk( (Element) node ); } else { // do something.... } } }
Creating a new XML document 创建一个新的xml文档,建议按我的教程先执行这步操作,后面的解析内容都是应用这部分demo产生的xml文件进行的。
/** * 创建一个XML文件 * @return */ public Document createDocument(){ Document document = DocumentHelper.createDocument(); Element root = document.addElement("root"); Element author1 = root.addElement("author") .addAttribute("name", "James") .addAttribute("location", "UK") .addText( "James Strachan" ); Element author2 = root.addElement( "author" ) .addAttribute( "name", "Bob" ) .addAttribute( "location", "US" ) .addText( "Bob McWhirter" ); return document; }
Write xml document to file 将xml文件写入到文件系统,即存储到磁盘,但是这个写的文件格式不是很好看
/** * 写xml文档到磁盘文件 * @param document * @throws IOException */ public void writeFile(Document document) throws IOException{ XMLWriter writer = new XMLWriter(new FileWriter("output.xml")); writer.write(document); writer.close(); }
这里提供一种比较好看的输出方式
/** * 格式话写xml文件 * @param document * @throws IOException */ public void prettyWrite(Document document) throws IOException{ OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format); writer.write(document); writer.close(); }
Converting to and from Strings 将字符串转换成xml文件
/** * 将文本的xml文件转换成xml文档 * @return * @throws DocumentException */ public Document convertFromStr() throws DocumentException{ String xmlStr = "<books><book author='李连杰'>1基金</book><book author='周星驰'>演员的自我修养</book></books>"; Document document = DocumentHelper.parseText(xmlStr); return document; }
也可以将xml文档转换成string
/** * 将xml文档转换成String * @return * @throws DocumentException */ public String covertFromXML() throws DocumentException{ Document document = convertFromStr(); return document.asXML(); }
最后写下dom4j对visitor的支持,先写一visitor类,继承自VisitorSupport
public class MyVisitor extends VisitorSupport { @Override public void visit(Attribute attribute) { System.out.println("-----"+attribute.getValue()); } @Override public void visit(Element element) { System.out.println("------"+element.getText()); } }
调用的时的方法,直接使用文档或者节点.appept(new 自己写的visitor类);
public void testVisitor() throws DocumentException{ Document document = xml.convertFromStr(); //document.accept(new MyVisitor()); document.selectSingleNode("/books/book").accept(new MyVisitor()); }
注意:文章中生成的文件放在了工程的目录下,要了解java中路径的问题请查看我的另一篇博客java路径的获取方式。
最后将我的demo一起随附件上传。
- XMLCRUD.zip (505.5 KB)
- 下载次数: 11
发表评论
-
poi 合并重复单元格以及冻结行列
2014-10-31 11:49 2093在实际开发中,我们经常会遇到Excel的合并重复单元格,如 ... -
freemark 工具类
2014-06-12 21:42 1239freemark工具类,根据传入的数据模型,生成对应的模板文 ... -
J2EE 文件下载工具类
2014-06-12 21:20 869一个简单的下载类,在此记录 package com.sgc ... -
POI生成Excel工具类
2014-06-12 21:07 1936废话不说,直接上代码 package com.sgcc. ... -
XML生成实体对象
2014-06-12 21:05 1570在此记录一个xml的工具类,该类可以读取xml文件,存入磁盘 ... -
POI 实现合并单元格以及列自适应宽度
2012-07-27 13:32 70840POI是apache提供的一个读写Excel文档的开源组件 ... -
java 获取外网地址
2012-03-09 11:25 3584在项目中,我们有时需要获取外网的地址,这里指的地址是公网的 ... -
Eclipse 3.6.2 反编译插件jad的配置说明
2012-01-18 11:27 16531.将jad.exe文件放入java的bin目录下,如: ... -
关于java反射的一点应用
2011-10-28 16:32 1350这里记录我在项目中写的一个小应用,用在了数据库的帮助类中,用于 ... -
eclipse中工程右键点击validate后处理方法
2011-02-24 15:16 2016当在eclipse中的工程中点击了validate后,大篇的红 ... -
java设计模式之外观模式
2010-12-17 11:16 1608这一节说说外观模式,这个模式还是很简单的,平时也许我们都用上了 ... -
java设计模式之工厂模式
2010-12-17 10:33 911这一节就说下工厂模式,实例代码的构建环境是学习雷锋同志的优良品 ... -
java设计模式之代理模式
2010-12-16 16:43 1124这一节说说代理模式,我的代码的模拟场景是追MM,感兴趣吧,块看 ... -
java设计模式之策略模式
2010-12-16 16:27 1150这一节主要说明下策略模式的使用。同样,我们模拟计算器的场景。和 ... -
java设计模式之简单工厂模式
2010-12-16 16:17 1265为什么要用设计模式,这个我就不说了,原因很简单,因为它就是“美 ... -
使用pinyin4j获取汉字拼音首字母或全拼
2010-11-19 13:14 15254pinyin4j是一个开源项目,使用它可以很容易的获取汉字的拼 ... -
JMF捕获摄像头数据存入本地磁盘(java 多媒体)
2010-10-10 23:38 6504首先需要说明的是JMF是个什么东西?这个简单问下百度,在百度里 ... -
java swing 定时任务小工具(java窗体样式可改变)
2010-10-09 13:31 4477最近以来,由于一直比较闲,所以有时间干一些事情,所以就有了这个 ... -
java连接access数据库,采用相对路径
2010-10-08 14:32 1837二话不说。就是java如何连接access数据库,为什么要写这 ... -
java中路径的获取方式总结
2010-09-27 18:13 1197得到classpath和当前类的绝对路径的一些方法获得CLAS ...
相关推荐
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除...
要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...
DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件
在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
DOM4J的核心优势之一在于其丰富的接口体系,这些接口定义在`org.dom4j`包内,提供了对XML文档进行读写、查询、修改等操作的能力。 1. **Attribute**: 代表XML中的属性,可用于获取和设置属性值。 2. **Branch**: ...
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...
在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是Apache软件基金会的一个项目,它通过定义项目对象模型(Project Object Model,POM)来管理项目的构建、...
DOM4J通过创建一个对象模型来表示XML文档,使得我们可以像操作Java对象一样操作XML元素。 1. **XML解析**: - 使用`DocumentBuilderFactory`和`DocumentBuilder`类可以将XML字符串转换为`Document`对象,这是DOM4J...
在本示例中,我们将深入探讨如何使用DOM4J解析XML文件,以`CacheInit.java`作为我们的核心代码示例,并参考`emailTemplateConfig.xml`作为实际操作的对象。 首先,让我们了解XML(eXtensible Markup Language)。...
在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j 生成 XML 文档非常简单。首先,我们需要创建一个 Document 对象,然后添加元素和属性。下面是一个生成 XML 文档的...
### DOM4J解析XML知识点详解 ...通过结合使用DOM4J的基本类和XPath表达式,可以轻松地实现对XML文档的查询和修改。无论是对于开发人员还是对于那些需要频繁处理XML数据的应用程序来说,DOM4J都是一个非常有价值的工具。
"以及解析xml文档所用的pdf文档说明"则表明还有一个PDF文档,可能详细介绍了如何使用dom4j来解析XML文件,包括各种方法、类和接口的使用示例。 **dom4j解析XML文档知识点:** 1. **dom4j简介**:dom4j是一个开放...
在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件。 首先,我们需要了解DOM4J的基本概念。DOM4J采用Document Object Model (DOM)接口,但它的实现比标准DOM更快,占用内存更...
本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...
1. **DOM4J API**:DOM4J提供了一组直观的类和接口来操作XML文档,如`Element`代表XML元素,`Attribute`代表属性,`Document`表示整个XML文档,还有`Namespace`处理命名空间。通过这些API,开发者可以轻松地创建、...
要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...