- 浏览: 3425484 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
使用 domj4 API 创建与修改 XML 文档http://www.blogjava.net/tojava/archive/2005/12/20/24862.html
dom4j修改xml文件 http://lengchaotian.iteye.com/blog/1873658
用dom4j修改xml(增加修改节点)http://bjyzxxds.iteye.com/blog/477226
dom4j修改节点属性及写入文件 http://blog.163.com/sir_876/blog/static/1170522320107741950123/
maven:
Dom4j-XPath语法
首先给出一段XML格式文本信息:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
表达式 描述
节点名 选择所有该名称的节点集
/ 选择根节点
// 选择当前节点下的所有节点
. 选择当前节点
.. 选择父节点
@ 选择属性
示例
表达式 描述
bookstore 选择所有bookstore子节点
/bookstore 选择根节点bookstore
bookstore/book 在bookstore的子节点中选择所有名为book的节点
//book 选择xml文档中所有名为book的节点
bookstore//book 选择节点bookstore下的所有名为book为节点
//@lang 选择所有名为lang的属性
断言
在方括号中[],用来更进一步定位选择的元素
表达式 描述
/bookstore/book[1] 选择根元素bookstore的book子元素中的第一个(注意: IE5以上浏览器中第一个元素是0)
/bookstore/book[last()] 选择根元素bookstore的book子元素中的最后一个
/bookstore/book[last()-1] 选择根元素bookstore的book子元素中的最后第二个
/bookstore/book[position()<3] 选择根元素bookstore的book子元素中的前两个
//title[@lang] 选择所有拥有属性lang的titile元素
//title[@lang='eng'] 选择所有属性值lang为eng的title元素
/bookstore/book[price>35.00] 选择根元素bookstore的book子元素中那些拥有price子元素且值大于35的
/bookstore/book[price>35.00]/title 选择根元素bookstore的book子元素中那些拥有price子元素且值大于35的title子元素
选择位置的节点
通配符 描述
* 匹配所有元素
@* 匹配所有属性节点
node() 匹配任何类型的节点
示例
表达式 描述
/bookstore/* 选择根元素bookstore的下的所有子元素
//* 选择文档中所有元素
//title[@*] 选择所有拥有属性的title元素
使用操作符“|”组合选择符合多个path的表达式
xpath读取
dom4j中文乱码
http://blog.sina.com.cn/s/blog_3d25e30f0100cyzi.html
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
new FileOutputStream(fileName));
dom4j读写xml文件
http://www.blogjava.net/biiau/archive/2012/08/17/231005.html
写入
格式化代码:
dom4j修改xml文件 http://lengchaotian.iteye.com/blog/1873658
用dom4j修改xml(增加修改节点)http://bjyzxxds.iteye.com/blog/477226
dom4j修改节点属性及写入文件 http://blog.163.com/sir_876/blog/static/1170522320107741950123/
maven:
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.6</version> </dependency>
Dom4j-XPath语法
首先给出一段XML格式文本信息:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
表达式 描述
节点名 选择所有该名称的节点集
/ 选择根节点
// 选择当前节点下的所有节点
. 选择当前节点
.. 选择父节点
@ 选择属性
示例
表达式 描述
bookstore 选择所有bookstore子节点
/bookstore 选择根节点bookstore
bookstore/book 在bookstore的子节点中选择所有名为book的节点
//book 选择xml文档中所有名为book的节点
bookstore//book 选择节点bookstore下的所有名为book为节点
//@lang 选择所有名为lang的属性
断言
在方括号中[],用来更进一步定位选择的元素
表达式 描述
/bookstore/book[1] 选择根元素bookstore的book子元素中的第一个(注意: IE5以上浏览器中第一个元素是0)
/bookstore/book[last()] 选择根元素bookstore的book子元素中的最后一个
/bookstore/book[last()-1] 选择根元素bookstore的book子元素中的最后第二个
/bookstore/book[position()<3] 选择根元素bookstore的book子元素中的前两个
//title[@lang] 选择所有拥有属性lang的titile元素
//title[@lang='eng'] 选择所有属性值lang为eng的title元素
/bookstore/book[price>35.00] 选择根元素bookstore的book子元素中那些拥有price子元素且值大于35的
/bookstore/book[price>35.00]/title 选择根元素bookstore的book子元素中那些拥有price子元素且值大于35的title子元素
选择位置的节点
通配符 描述
* 匹配所有元素
@* 匹配所有属性节点
node() 匹配任何类型的节点
示例
表达式 描述
/bookstore/* 选择根元素bookstore的下的所有子元素
//* 选择文档中所有元素
//title[@*] 选择所有拥有属性的title元素
使用操作符“|”组合选择符合多个path的表达式
xpath读取
private void getAllNodes(String xml) { try { Document authtmp = DocumentHelper.parseText(xml); List<Element> list = authtmp.selectNodes("//sms/node"); for (int j = 0; j < list.size(); j++) { Element node = (Element) list.get(j); nodeByNodes(node); } } catch (Exception e) { e.printStackTrace(); } } private void nodeByNodes(Element node) { if (node.element("node") != null) { String id = node.attributeValue("id"); String name = node.attributeValue("name"); System.out.print(id + "-------"); System.out.println(name); for (Iterator i = node.elementIterator("node"); i.hasNext();) { Element newNode = (Element) i.next(); nodeByNodes(newNode); } } else { String id = node.attributeValue("id"); String name = node.attributeValue("name"); System.out.print(id + "-------"); System.out.println(name); } }
dom4j中文乱码
http://blog.sina.com.cn/s/blog_3d25e30f0100cyzi.html
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
new FileOutputStream(fileName));
dom4j读写xml文件
http://www.blogjava.net/biiau/archive/2012/08/17/231005.html
写入
import java.io.FileWriter; import java.io.IOException; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class DWriter { public static void main(String[] args) { // TODO Auto-generated method stub try { XMLWriter writer = new XMLWriter(new FileWriter("src/author.xml")); Document doc = createDoc(); writer.write(doc); writer.close(); // Pretty print the document to System.out // 设置了打印的格式,将读出到控制台的格式进行美化 OutputFormat format = OutputFormat.createPrettyPrint(); writer = new XMLWriter(System.out, format); writer.write(doc); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static Document createDoc() { Document doc = DocumentHelper.createDocument(); Element root = doc.addElement("root"); Element author1 = root.addElement("author").addAttribute("name", "Kree").addAttribute("location", "UK") .addText("Kree Strachan"); Element author2 = root.addElement("author").addAttribute("name", "King") .addAttribute("location", "US").addText("King McWrirter"); return doc; } }
格式化代码:
OutputFormat format = OutputFormat.createPrettyPrint(); writer = new XMLWriter(new FileWriter(filepath), format);
发表评论
-
分布式存储系统GlusterFS安装配置
2016-06-27 14:51 1032http://navyaijm.blog.51cto.com/ ... -
分布式查询 presto 入门安装使用
2016-06-24 15:44 2503http://my.oschina.net/chengxiao ... -
跟我学习dubbo
2016-06-17 15:20 1070跟我学习dubbo-目录 http://bluereader. ... -
JavaMelody监控web服务器
2016-06-17 14:20 1180JavaMelody监控web服务器 http://my.os ... -
freemarker使用记录
2016-06-08 16:24 1309freeMarker语法 http://uule.iteye. ... -
freemarker判断是否为空
2016-06-08 16:03 2http://www.oschina.net/code/sni ... -
ehcache 分布式支持
2016-06-05 22:26 1099原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2883原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1546http://my.oschina.net/wjme/blog ... -
分布式任务调度组件 Uncode-Schedule
2016-05-13 14:47 2287http://www.oschina.net/p/uncode ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3445http://www.guokr.com/blog/47576 ... -
Fedora安装Redis
2016-05-04 08:56 1414管理工具: centos6.3下安装phpredisadmin ... -
redis-install.sh
2016-05-04 08:56 4#!/bin/bash # From here: http: ... -
redis 集群中Session解决方案之Spring Session
2016-05-04 08:54 1317集群中Session解决方案之Spring Session h ... -
使用Spring-data进行Redis操作
2016-05-04 08:54 4796使用Spring-data进行Redis操作 http://z ... -
Shiro集群实现
2016-05-04 08:53 2314apache shiro集群实现(一) session共享 h ... -
spring 注解方式下使用commons-validator 验证表单
2016-05-03 11:08 3078原文: http://www.programgo.com/ar ... -
Apache Lucene 5.x版本 示例
2016-04-28 15:46 1147http://blog.csdn.net/isea533/ar ... -
Hessian 二进制RPC协议整合到SpringMVC
2016-04-27 09:47 1742SpringMVC集成Hessianhttp://blog.c ... -
shiro过滤器过滤属性含义
2016-04-21 13:51 1318http://my.oschina.net/cng1985/b ...
相关推荐
由于其易于使用的接口和Java集合框架的集成,Dom4j广泛应用于需要处理XML文档的Java应用程序中。首先,Dom4j的应用非常简单,只需要对XML-DOM模型有基本的了解就能上手使用。 Dom4j的接口大部分定义在org.dom4j包中...
DOM4J的使用方法非常直观。例如,你可以使用以下代码创建一个新的XML文档: ```java DocumentFactory factory = DocumentFactory.getInstance(); Document document = factory.createDocument(); Element root...
#### 三、DOM4j基本使用方法 1. **读取并解析XML文档** 要读取并解析XML文档,可以使用`org.dom4j.io`包中的`SAXReader`类。`SAXReader`是一个轻量级的解析器,适用于大型文档,因为它不会一次性将整个文档加载到...
12. **常见问题与解决方案**:列举了一些在使用DOM4J过程中可能会遇到的问题及其解决方法。 通过阅读和实践DOM4J的帮助文档和使用教程,开发者可以全面掌握DOM4J的各种特性和用法,从而更高效地处理XML数据。这个...
"dom4j-2.1.3-javadoc.jar"文件则包含了DOM4J库的API文档,是开发者学习和使用DOM4J的重要参考资料。通过这个文件,我们可以查找类、接口、方法的详细说明,理解它们的功能和使用方式,这对于开发过程中快速定位问题...
其中,`dom4j-1.6.1.jar`是运行时库,包含了DOM4J的所有类和方法;`dom4j-1.6.1-sources.jar`包含了源代码,方便查看和学习;`dom4j-1.6.1.tar.gz`和`dom4j-1.6.1.zip`则是不同的压缩格式,提供了库文件的打包形式。...
DOM4J的2.0.3版本修复了一些已知问题,提升了稳定性,同时保持了对XML规范的良好支持。 二、核心概念 1. **Element**: DOM4J中的Element类代表XML文档中的元素节点,它是DOM4J中最重要的类。通过Element,我们可以...
标题提到的"所有版本的dom4j工具包"表明这是一个包含多版本DOM4J库的集合,可能包括了从早期到较新的一些版本,如dom4j-1.4.jar、dom4j-1.6.1.jar和dom4j-1.5.2.jar。这些不同版本的库可能分别对应于不同的功能特性...
赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...
赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...
在"dom4jdemo"这个子文件夹中,很可能是包含了一个或多个Java源代码文件,演示了如何使用DOM4J进行XML操作的实例。这些代码通常会包含导入DOM4J库的语句,如`import org.dom4j.Document;`和`import org.dom4j....
7. **文档处理API**:DOM4J的API设计得非常直观,例如Element接口提供了添加子元素、删除元素、查找元素、获取属性值等方法,使得XML操作变得简单易用。 综上所述,DOM4J是一个强大且易用的XML处理工具,配合Jaxen...
本文将通过一个具体的示例代码来深入探讨DOM4j的使用方法,涵盖创建、修改XML文档的常用操作。 #### 创建XML文档 在DOM4j中,创建XML文档非常直观。首先,需要导入DOM4j相关的包: ```java import org.dom4j....
2. 性能优异:相比其他XML解析库,DOM4J在处理大规模XML文档时表现出更好的性能,因为它采用了一些优化策略,如延迟加载(lazy loading),避免一次性加载整个文档导致的内存消耗。 3. 功能强大:DOM4J不仅支持基本...
DOM4J使用`XPathFactory`来创建`XPath`对象,然后通过`createXPath()`方法构建XPath表达式: ```java XPathFactory factory = XPathFactory.instance(); XPath xpath = factory.newXPath(); ``` **4. 执行XPath...
压缩包中的“使用说明.txt”很可能是DOM4J的快速入门指南或API参考,它可能包含了如何导入库、创建XML文档、执行XPath查询、修改XML结构等基础用法的示例代码。对于初次使用者来说,这份文档是理解DOM4J功能和用法的...
在提供的压缩包中,包含了关于这三种解析方式的代码示例,你可以参考这些代码了解如何在Java环境中使用DOM、SAX和DOM4J进行XML解析。通过阅读和理解这些示例,你可以更好地掌握XML解析技术,并根据项目需求选择合适...
2. **创建XML文件**:使用DOM4j创建一个新的XML文件,这通常涉及到`Document`、`Element`和`Writer`的使用。例如,你可以创建一个包含根元素和子元素的XML文件。 3. **动态创建XML节点**:在已有的XML文档中动态...