`
yaoweinan
  • 浏览: 132945 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

dom4j xml 简单操作

    博客分类:
  • j2se
 
阅读更多

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();
  }

 }

}

分享到:
评论

相关推荐

    java操作xml dom dom4j sax jdom

    Java 四种方式操作xml,包括xml,dom,sax,jdom这四种方式的一个简单例子。

    JAVA操作XMLDOM4j简单教程

    DOM4j是一个易用的,开源的JAVA操作XML的API,写过一篇4种XML操作API的比较,DOM4j是性能和易用行最佳的。因此做一个小教程,供初学者学习。

    dom4j-1.6.1 XML库

    文件为官网的dom4j-1.6.1库 可以对XML进行简单高效的操作 是JAVA语言版本的各位看好下载

    JAVA操作XMLDOM4j简单教程1

    DOM4J使用起来非常简单。只要你了解基本的XML-DOM模型,就能使用。然而他自己带的指南只有短短一页(html),不过说的到挺全。国内的中文资料很少。因而俺写这个短小的教程方便大家使用,这篇文章仅谈及基本的用法,...

    Java使用dom4j实现对xml简单的增删改查操作示例

    主要介绍了Java使用dom4j实现对xml简单的增删改查操作,结合实例形式详细分析了Java使用dom4j实现对xml简单的增删改查基本操作技巧与相关注意事项,需要的朋友可以参考下

    dom4j使用与jar包

    java处理xml文件的jar包。操作简单方便。可以对xml的节点,值修改等等,详细说明在在下载包中有说明

    基于java swing和dom4j的购物管理系统

    该系统采用MVC架构,使用Java Swing编写用户界面,使用DOM4J解析和操作XML文件存储数据。 系统主要包含以下模块: 登录注册模块:用户可以在该模块中进行注册和登录操作,登录成功后才能使用系统的其他功能。 ...

    Xml完全操作 XML增删改查

    XML在我们的程序中用到的越来越多,因为它存储、读取、修改都比较方便。本例是就是对Xml的增删改查...

    解析xml中的java包

    标准Dom、JDom(为Java提供的解析技术)、Dom4j(优化之后的解析技术)、SAX(大型xml解析的技术) 树模型:DOM、JDOM、Dom4j; 特点:算法丰富、操作比较简单;一次性读取所有内容到内存(不适于大型xml文件解析...

    XML文档生成与解析

    通过 利用 java 以及 dom4j 来进行XML 文件的 生成与 解析操作。代码简单易懂。

    xml简单实现学生管理系统!看不懂来打我!!!

    再用dom4j解析器来对xml文件进行操作,也会用到一点xpath的东西。 二:实现步骤 1.Dom4j工具类 用来简化对xml的操作: import java.io.FileOutputStream; import java.io.IOException; import org.dom4j.Document; ...

    xml的解析方式大全

    1、【DOM】 DOM是基于树的结构,通常需要加载整文档和构造DOM树,然后才能开始工作。 优点: a、由于整棵树在内存中,因此可以对xml文档随机...4、【DOM4J】 这4中xml解析方式中,最优秀的一个,集易用和性能于一身。

    JOX实现XML和JavaBean相互转化

    XML和JavaBean相互转化是一个非常有用的工作,用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    xml入门教程/xml入门教程

    4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系; 5) XML是一种用于结构化文本交换的标记语言; 6) XML代表了内容的结构也代表了内容本身; 7) XML继承自SGML(标准通用标记语言)。SGML的...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    XML创建了标识,而DOM的作用就是告诉script如何在浏览器窗口中操作和显示这些标识 上面我们已经简要的讲述了一些XML的基本原理,我们来看看它们之间的关联以及它们是如何工作的,先看这里一张图: 1.XML描述...

    XML文件在Java程序中的基本运用.zip

    这个是一个Java程序的压缩包,内容主要是在Java程序中读取调用xml文件,通过Java程序编写xml文件等基础操作。代码很简单,其中包含dom4j的基础用法。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

Global site tag (gtag.js) - Google Analytics