- 浏览: 138397 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
yaoweinan:
没有.....
Itext 5.4.0 生成PDF中文不报错,Adobe 不显示 -
马文涛:
我也发现这个问题了,你找到解决办法了吗?
Itext 5.4.0 生成PDF中文不报错,Adobe 不显示 -
coding1688:
博主辛苦了,也可以参考一下这篇文章:四步轻松搞定瀑布流布局ht ...
瀑布流布局个人实现 -
yaoweinan:
嘿嘿,那个只是最笨的办法,实际上是不行的,现在一般的都有sw ...
文件上传(无刷新,带进度条,带网速)下载完整 -
javazzu:
我为啥不行呢
文件上传(无刷新,带进度条,带网速)下载完整
package com.my.until;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author lyon.yao
* @function:xml文件操作 需要dom4j-1.6.1.jar
* @date:2011-10-22
*/
public final class XmlTool {
private static SAXReader xppReader=new SAXReader();
/**
* @function:根据文件路径读取xml
* @param Path
* @return
* @throws FileNotFoundException
*/
private static Document loadXml(final String path) throws DocumentException{
Document document=xppReader.read(path);
return document;
}
/**
* @function:根据字符读取xml文件
* @param chars
* @return
*/
private static Document loadXml(final byte[] bytes) throws DocumentException{
ByteArrayInputStream in=new ByteArrayInputStream(bytes);
Document document=xppReader.read(in);
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return document;
}
/**
* @function:根据文件对象读取xml
* @param file
* @return
* @throws IOException
*/
public static Document loadXml(File file) throws DocumentException{
Document document;
document = xppReader.read(file);
return document;
}
/**
* @function:根据id查找元素下一级中的元素
* @param element
* @param id
* @return
*/
public static List<Element> findElementById(Element element,String id){
Iterator<Element> it = element.elementIterator();
List<Element> result=new ArrayList<Element>();
while (it.hasNext()) {
Element temp = (Element) it.next();
String id_val=temp.attributeValue("id");
if(id.equals(id_val)){
result.add(temp);
}
}
return result;
}
/**
* @function:根据标签名查找xml
* @param element
* @param id
* @return
*/
public static List<Element> findElementByTagName(Element element,String tag_name){
List<Element> result=new ArrayList<Element>();
Iterator<Element> it = element.elementIterator();
while (it.hasNext()) {
Element temp = (Element) it.next();
String tagName=temp.getName();
if(tag_name.equals(tagName)){
result.add(temp);
}
}
return result;
}
/**
* @function:将xml写入指定路径的文件中
* @param document
* @param path
* @throws IOException
*/
public static void writeXml(Document document,String path) throws IOException{
FileOutputStream out_file=new FileOutputStream(path);
XMLWriter writer=new XMLWriter(out_file);
writer.write(document);
writer.flush();
writer.close();
out_file.close();
}
/**
* @function:将xml写入文件
* @param document
* @param file
* @throws IOException
*/
public static void writeXml(Document document,File file) throws IOException{
FileOutputStream out_file=new FileOutputStream(file);
XMLWriter writer=new XMLWriter(out_file);
writer.write(document);
writer.flush();
writer.close();
out_file.close();
}
/**
* @function:将xml文件写入输出流中
* @param document
* @param out
* @throws IOException
*/
public static void writeXml(Document document,OutputStream out) throws IOException{
XMLWriter writer=new XMLWriter(out);
writer.write(document);
writer.close();
}
/**
* 测试入口
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Document doc=XmlTool.loadXml( XmlTool.class.getClassLoader().getResource("")+ "accessCogfig.xml");
System.out.println(doc.asXML());
String xml=doc.asXML();
System.out.println(XmlTool.loadXml(xml.getBytes()).asXML());
List<Element> e=XmlTool.findElementByTagName(doc.getRootElement(), "page-config");
System.out.println(XmlTool.findElementById(e.get(0), "accessRefuse_url"));
XmlTool.writeXml(doc, "C:\\xml.xml");
XmlTool.writeXml(doc, new File("c:\\tmx.xml"));
FileOutputStream out_file=new FileOutputStream(new File("c:\\tmx1.xml"));
XmlTool.writeXml(doc, out_file);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
发表评论
-
写自己的框架,让别人笑掉大牙吧(IOC2)
2013-04-22 14:23 902上篇中主要使用配置文件来定义一些类实例之间的组织关系 ... -
关于java中对象属性值的校验的思考
2013-04-15 14:09 1557现在在java 开发中经常会遇到要交验某个obje ... -
java 动态编译及执行实现Web式java开发
2012-11-29 17:05 923废话不说,让大家等了这么久,先看看截图 : 编译 ... -
JXLayer 使用简单介绍
2012-11-01 17:25 1320JXLayer 是一个很好的Swing 控件装饰类库,其主要要 ... -
关于Jtextinpt 内容的限制
2012-09-28 15:00 812在JTextInput 限制输入内容,这个一般的通过按键输入进 ... -
构造中的多态
2012-08-25 23:19 858各位仁兄,前几日我在 ... -
Swing JtableModel 使用之旅
2012-07-29 03:25 1032JTable 是我们一般展示数据的一个很好的Grid组建,个人 ... -
模版模式(TemplatePattern)
2012-07-15 11:08 797模版模式分为2个部分 1.抽象模版 2.具体模版 ... -
门面模式(Facade Pattern)
2012-06-10 19:37 991门面模式(Facade Pattern):门面模式在我个人感觉 ... -
代理模式例子
2012-06-04 15:07 989代理模式简单点就和现实中一样,只是代理实质性的还是别人在做。比 ... -
策略模式应对旅行中出现的问题
2012-06-04 14:21 889策略模式是针对在进行过程中出现一些问题的应对模式。一般可以分为 ... -
java 工厂模式简单介绍及例子
2012-06-03 23:16 1066java中工厂模式在java ee中经常碰见,是一种常见的模式 ... -
java 动态代理及自定义标注使用例子
2012-06-03 00:14 1239java中动态代理,在实际应用中有着很大的作用,譬如在一些类似 ... -
flex3 socket+java
2012-02-06 12:10 1090首先解决的问题是flex的沙箱问题,由于flex 连接服务器存 ... -
java 自定义注解
2012-01-30 16:09 835写道 package com.my;import j ... -
图片裁剪,缩放 批处理
2012-01-07 15:25 1025package dwr.demo; import ... -
java System.Properties
2011-10-26 13:19 750使用Properties.getProperty方法的参数也可 ... -
JDK自带的实用工具native2ascii.exe
2011-10-26 09:21 842在做Java开发的时候, ... -
装饰模式例子(模仿修改船只用途)
2011-08-28 20:31 723模仿一次出海旅行中船只的用途的动态调整 功能 写道 pac ... -
观察模式实现粉丝模仿明星说话
2011-08-28 15:05 855艺术圈 写道 package cn.watchermodel ...
相关推荐
Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...
导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写操作。 总之,DOM4J作为一款强大的XML处理工具,为Java开发者提供了丰富的功能和良好的性能,是处理XML文档的理想选择。无论是小型项目还是大型企业级...
首先,dom4j是一个强大的Java XML API,它提供了丰富的功能,如读取、写入、修改和操作XML文档。其核心概念是Element(元素)、Attribute(属性)和Document(文档)。通过这些对象,我们可以方便地处理XML文档的...
这个压缩包包含了DOM4J的完整版本,适用于那些希望在Java项目中使用DOM4J进行XML操作的开发者。 首先,让我们深入了解一下DOM4J的核心概念和特性: 1. **Document对象**:DOM4J中的Document对象代表整个XML文档。...
如果你需要更精细地控制XML操作,如修改节点或添加新元素,DOM4J也提供了相应的API。 总结起来,DOM4J是处理XML的优秀工具,尤其适合解析具有任意深度的XML结构。通过`SAXReader`解析XML文件,`Document`和`Element...
本示例将详细介绍如何利用DOM4J进行XML文件的操作,包括创建XML文档、解析XML内容以及对XML元素的增删改查。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种自描述性的标记语言,常...
总结,DOM4J是Java开发中处理XML文档的强大工具,它的易用性和灵活性使得XML操作变得简单。无论是读取、写入还是搜索XML,DOM4J都能提供高效的方法。在实际项目中,结合源码阅读和使用DOM4J工具,能够更深入地理解和...
DOM4j则是一个强大的Java库,用于处理XML文档,提供了丰富的API来实现XML的读取、写入、修改等操作。在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是...
DOM4J是Java环境中一个强大、灵活的XML处理库,它提供了XML的读取、写入、解析和操作的能力。本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解...
以下是一个简单的DOM4J代码示例,展示如何使用DOM4J删除XML文档中的一个节点: ```java import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....
掌握DOM4J对于Java开发者来说是非常有用的,因为它能帮助我们高效地处理XML文档,无论是简单的数据读取还是复杂的XML结构操作。通过实践和理解这些基本概念,你可以更好地利用DOM4J进行XML相关的工作。
在本文中,我们将深入探讨DOM4J如何进行XML操作,包括增加、删除和修改XML元素。 首先,我们需要理解XML的基本结构。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它使用标签来描述数据。DOM4J通过...
在"dom4j_XML"这个例子中,可能包含了创建一个XML文件,然后用DOM4J进行解析和操作的完整流程。开发者可能会学习如何读取XML文件,获取特定元素的值,修改元素或属性,以及如何将修改后的文档保存回XML文件。这样的...
在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件。 首先,我们需要了解DOM4J的基本概念。DOM4J采用Document Object Model (DOM)接口,但它的实现比标准DOM更快,占用内存更...
在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...
1. **DOM4J API**:DOM4J提供了一组直观的类和接口来操作XML文档,如`Element`代表XML元素,`Attribute`代表属性,`Document`表示整个XML文档,还有`Namespace`处理命名空间。通过这些API,开发者可以轻松地创建、...
在Java应用中,DOM4J经常被用作XML处理的标准库,特别是在那些需要高效XML操作的场景中。 在使用DOM4J解析XML时,可能会遇到一个特定的问题:`java.lang.IllegalStateException`异常。这个异常通常意味着在执行某些...
- **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...