- 浏览: 372509 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
云卷云舒灬:
...
Java读取XML配置文件详细总结(dom4j方式) -
ancoa:
多谢博主分享
jQuery实现多选下来框(multiple select) -
aa51513:
图片看不成
java利器---jodd -
wanggang0321:
正在学习中,看完文章了,谢谢写的教程!!!
Tomcat负载均衡和集群环境的搭建 -
yasyas001:
引用
如何实现双(多)语种网站内容的国际化?
版权声明:
本文由冰云完成,首发于CSDN,未经许可,不得使用于任何商业用途。
文中代码部分引用自DOM4J文档。
欢迎转载,但请保持文章及版权声明完整。
如需联络请发邮件:icecloud(AT)sina.com
|
Attribute定义了XML的属性
|
|
Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为,
|
|
CDATA 定义了XML CDATA 区域
|
|
CharacterData是一个标识借口,标识基于字符的节点。如CDATA,Comment, Text.
|
|
Comment 定义了XML注释的行为
|
|
定义了XML文档
|
|
DocumentType 定义XML DOCTYPE声明
|
|
Element定义XML 元素
|
|
ElementHandler定义了 Element 对象的处理器
|
|
被 ElementHandler
使用,用于取得当前正在处理的路径层次信息
|
|
Entity定义 XML entity
|
|
Node为所有的dom4j中XML节点定义了多态行为
|
|
NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为(predicate)
|
|
ProcessingInstruction 定义 XML 处理指令.
|
|
Text 定义XML 文本节点.
|
|
Visitor 用于实现Visitor模式.
|
|
XPath 在分析一个字符串后会提供一个XPath 表达式
|
-
-
- interface org.dom4j.CharacterData
- interface org.dom4j.DocumentType
- interface org.dom4j.Entity
- interface org.dom4j.ProcessingInstruction
-
// 从文件读取XML,输入文件名,返回XML文档
public
Document read(String fileName) throws
MalformedURLException, DocumentException {
SAXReader reader = new
SAXReader();
Document document = reader.read(new
File(fileName));
return
document;
}
|
public
Element getRootElement(Document doc){
return
doc.getRootElement();
}
|
// 枚举所有子节点
for
( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
// do something
}
// 枚举名称为foo的节点
for
( Iterator i = root.elementIterator(foo); i.hasNext();) {
Element foo = (Element) i.next();
// do something
}
// 枚举属性
for
( Iterator i = root.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
// do something
}
|
public
void
treeWalk() {
treeWalk(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....
}
}
}
|
public
class
MyVisitor extends
VisitorSupport {
public
void
visit(Element element){
System.out.println(element.getName());
}
public
void
visit(Attribute attr){
System.out.println(attr.getName());
}
}
调用: root.accept(new MyVisitor())
|
public
void
bar(Document document) {
List list = document.selectNodes( //foo/bar );
Node node = document.selectSingleNode(//foo/bar/author);
String name = node.valueOf( @name );
}
|
public
void
findLinks(Document document) throws
DocumentException {
List list = document.selectNodes( //a/@href );
for
(Iterator iter = list.iterator(); iter.hasNext(); ) {
Attribute attribute = (Attribute) iter.next();
String url = attribute.getValue();
}
}
|
// XML转字符串
Document document = ...;
String text = document.asXML();
// 字符串转XML
String text = <person> <name>James</name> </person>;
Document document = DocumentHelper.parseText(text);
|
public
Document styleDocument(
Document document,
String stylesheet
) throws
Exception {
// load the transformer using JAXP
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(
new
StreamSource( stylesheet )
);
// now lets style the given document
DocumentSource source = new
DocumentSource( document );
DocumentResult result = new
DocumentResult();
transformer.transform( source, result );
// return the transformed document
Document transformedDoc = result.getDocument();
return
transformedDoc;
}
|
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;
}
|
FileWriter out = new
FileWriter( foo.xml );
document.write(out);
|
public
void
write(Document document) throws
IOException {
// 指定文件
XMLWriter writer = new
XMLWriter(
new
FileWriter( output.xml )
);
writer.write( document );
writer.close();
// 美化格式
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new
XMLWriter( System.out, format );
writer.write( document );
// 缩减格式
format = OutputFormat.createCompactFormat();
writer = new
XMLWriter( System.out, format );
writer.write( document );
}
|
发表评论
-
Java算法—农夫和牛的问题
2013-04-10 16:05 4945问题:一个农夫养了一头牛,三年后,这头牛每年会生出一头牛,生 ... -
Java读取Txt文件
2013-02-28 10:15 2105java读取txt文件的内容 类 ... -
An internal error occurred during: "Building workspace". Java heap space
2013-01-31 15:31 8065今天MyEclipse导入了一个 ... -
java利器---jodd
2013-01-25 17:26 18564网上对Jodd的描述如下: Jodd是一个普通开源Java ... -
Java程序发送邮件的两种方法
2013-01-24 15:17 3971前一段时间我在博客中发表过Java接收解析邮件的程序,今天, ... -
FreeMarker
2012-12-17 15:19 1864在Web应用中,有时需要按照固定的模板将数据导出到Word,如 ... -
Java读取XML配置文件详细总结(dom4j方式)
2012-11-30 16:57 4716最初的想法是不把mysql的连接参数写到程序中,因为每次要修改 ... -
XML的特殊字符
2012-11-30 16:53 32925XML中共有5个特殊的字符,分别是:&<> ... -
JAVA获取各种各样的时间、时间对比 方法汇总
2012-11-28 17:01 2670import java.text.DateFormat; ... -
ftp 主动模式与被动模式
2012-11-23 12:25 2227tp的工作原理 ftp要用到两个tcp连接即要使用两个端口 一 ... -
JAVA中使用FTPClient上传下载
2012-11-16 15:03 3463在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上 ... -
Java获取网页内容s实现自动化(IASI)
2012-11-16 09:58 3348IasiClient package com.iasi. ... -
httpclient 用java调用 的方式获取网页内容,
2012-11-16 09:43 190331. 读取网页(HTTP/HTTPS) ... -
Java实现Zip压缩,解压缩(二)
2012-11-15 11:16 1614今天写了个用java压缩的功能,可以实现对文件和目录的压缩。 ... -
Java实现Zip压缩,解压缩(一)
2012-11-15 10:37 1637package org; import java.i ... -
java 接收、解析邮件实例(三)
2012-11-15 10:20 1354package com.prase.email.four; ... -
java 发送、解析邮件实例(二)
2012-11-14 16:47 1075package com.prase.email.eight ... -
java 发送、解析邮件实例(一)
2012-11-14 16:40 1475package com.prase.email.six; ... -
java发送邮件详细参数解析总结(一)
2012-11-14 16:36 137601.介绍: Java Mail API的开发是SUN为Jav ... -
JavaMail学习笔记(一)、理解邮件传输协议(SMTP、POP3、IMAP、MIME)
2012-11-14 16:33 1725电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之 ...
相关推荐
总结来说,DOM4J 1.6.1是一个强大且易用的XML处理库,为Java开发者提供了全面的XML操作支持,无论是在小型项目还是大型企业级应用中,都展现出了高效、灵活的优势。通过熟练掌握DOM4J,开发者能够更轻松地处理XML...
四、DOM4J与XPath XPath是一种在XML文档中查找信息的语言,DOM4J支持XPath表达式,使得我们可以快速定位到XML中的特定节点。例如: ```java String expression = "/root/element[@attr='value']"; List<Element> ...
**标题解析:** "Dom4j学习笔记" 这个标题明确指出了我们要探讨的主题——Dom4j。...这些知识点涵盖了从基础到进阶的Dom4j学习路径,对于任何想要掌握Dom4j的Java开发者来说,都是一个全面的指南。
DOM4J-1.6.1.jar是Java开发中用于处理XML文档的重要库,它提供了全面且强大的API,使得XML的读取、写入、操作变得简单易行。本文将深入探讨DOM4J的主要功能、特点以及在实际应用中的使用场景。 一、DOM4J概述 DOM4...
本文将深入探讨DOM4J的核心功能、使用方法以及源代码分析,帮助读者全面掌握这一强大的XML工具。 一、DOM4J基本概念 DOM4J作为一个轻量级的开源库,其设计目标是提供灵活且高性能的XML处理方案。它不仅实现了DOM ...
**DOM4J源码分析** DOM4J是一个强大的Java XML API,它提供了全面的XML处理功能,包括解析、生成、修改和查询XML文档。在这个压缩包文件“dom4j源码类.rar”中,我们可以深入研究DOM4J的内部实现,以理解其如何有效...
**标题解析:** "一个简单的Dom4j学习的例子" 暗示了我们将探讨的是如何使用Dom4j这个Java库来处理XML文档的基础..."Test.java"文件应该包含了这些概念的实际应用,通过分析这个文件,可以更深入地学习和实践Dom4j。
通过分析`Dom4jXML`程序,我们可以看到DOM4J在实际项目中的应用,这将加深对DOM4J的理解。 总结来说,DOM4J教程结合示例程序,为我们提供了一个全面了解和掌握XML处理的途径。通过学习和实践,我们可以熟练地在Java...
5. **集成性**:DOM4J与Spring框架和其他Java库有很好的集成,例如在Spring中可以使用DOM4J来读写配置文件。 6. **性能优化**:DOM4J设计时考虑了性能,比如通过延迟加载(lazy loading)减少内存占用,以及高效的...
- DOM4J提供了对XML命名空间的全面支持,包括声明命名空间、引用命名空间和处理带有命名空间的元素和属性。 5. **XPath支持** - DOM4J内置了XPath的支持,允许通过XPath表达式定位XML文档中的节点。这大大简化了...
#### 四、DOM4J 的应用场景 DOM4J因其出色的性能和灵活性,被广泛应用于各种场景中,包括但不限于: - **Web服务**:在构建RESTful Web服务时,DOM4J可用于解析和生成XML响应。 - **配置管理**:许多软件系统使用...
- **全面性**:DOM4J支持完整的DOM和SAX API,同时兼容JAXP,为用户提供更多选择。 #### 三、环境准备 在使用DOM4J之前,需要先添加其依赖库到项目中。最常用的版本是`dom4j-1.6.1.jar`,可以从以下链接下载: - ...
DOM4J是一个强大的Java XML API,它提供了全面的XML处理功能,包括解析、生成、修改和查询XML文档。这个库在Java社区中被广泛使用,因其简单易用和高效的特性而备受青睐。在本文中,我们将深入探讨DOM4J的核心概念和...
DOM4J是Java中一个非常流行的XML处理库,它提供了全面和强大的功能来处理XML文档。DOM4J的核心特性包括: 1. **DOM模型**:DOM4J支持DOM(Document Object Model)接口,允许开发者以树形结构处理XML文档,方便地...
在提供的`Dom4j_教程网页收集.chm`中,可能包含IBM关于Dom4j的实践示例和讲解,这些实例可以帮助你了解如何在实际项目中应用Dom4j。通过阅读和实践这些例子,你可以进一步掌握Dom4j的高级功能,如命名空间处理、XML ...
- **JDOM**:与Dom4j类似,但JDOM是专门为Java设计的DOM实现,更专注于Java集成。 - **XOM**:强调类型安全和错误检测,适合需要强类型保证的场景。 - **Java DOM API**:标准Java库中的XML处理API,虽然功能全面...
2. **功能全面:**DOM4J不仅支持基本的XML解析和创建,还提供了强大的XPath查询功能,便于开发者检索和操作XML文档中的特定部分。 3. **易用性:**DOM4J的API设计直观,易于理解和使用,即使是初学者也能快速上手。 ...
7. **Namespace支持**:XML命名空间是解决命名冲突的关键,DOM4J提供全面的支持,可以方便地处理带有namespace的XML文档。 8. **文档修改**:DOM4J不仅用于读取XML,还能方便地修改文档结构,如添加、删除、移动和...