`
yaoweinan
  • 浏览: 138343 次
  • 性别: 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();
  }

 }

}

分享到:
评论

相关推荐

    Dom4J生成XML的完整方法希望大家能用到

    Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写操作。 总之,DOM4J作为一款强大的XML处理工具,为Java开发者提供了丰富的功能和良好的性能,是处理XML文档的理想选择。无论是小型项目还是大型企业级...

    使用dom4j将xml字符串转换成Bean对象

    首先,dom4j是一个强大的Java XML API,它提供了丰富的功能,如读取、写入、修改和操作XML文档。其核心概念是Element(元素)、Attribute(属性)和Document(文档)。通过这些对象,我们可以方便地处理XML文档的...

    dom4j解析xml文件的压缩包

    这个压缩包包含了DOM4J的完整版本,适用于那些希望在Java项目中使用DOM4J进行XML操作的开发者。 首先,让我们深入了解一下DOM4J的核心概念和特性: 1. **Document对象**:DOM4J中的Document对象代表整个XML文档。...

    dom4j 解析(读取) xml 节点数据

    如果你需要更精细地控制XML操作,如修改节点或添加新元素,DOM4J也提供了相应的API。 总结起来,DOM4J是处理XML的优秀工具,尤其适合解析具有任意深度的XML结构。通过`SAXReader`解析XML文件,`Document`和`Element...

    Dom4j-XML.rar_dom4j xml

    本示例将详细介绍如何利用DOM4J进行XML文件的操作,包括创建XML文档、解析XML内容以及对XML元素的增删改查。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种自描述性的标记语言,常...

    dom4j读写xml文档实例

    总结,DOM4J是Java开发中处理XML文档的强大工具,它的易用性和灵活性使得XML操作变得简单。无论是读取、写入还是搜索XML,DOM4J都能提供高效的方法。在实际项目中,结合源码阅读和使用DOM4J工具,能够更深入地理解和...

    使用Maven管理项目,实现DOM4j操作XML文件

    DOM4j则是一个强大的Java库,用于处理XML文档,提供了丰富的API来实现XML的读取、写入、修改等操作。在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是...

    XSD使用dom4j校验XML

    DOM4J是Java环境中一个强大、灵活的XML处理库,它提供了XML的读取、写入、解析和操作的能力。本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解...

    dom4j解析xml

    以下是一个简单的DOM4J代码示例,展示如何使用DOM4J删除XML文档中的一个节点: ```java import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    掌握DOM4J对于Java开发者来说是非常有用的,因为它能帮助我们高效地处理XML文档,无论是简单的数据读取还是复杂的XML结构操作。通过实践和理解这些基本概念,你可以更好地利用DOM4J进行XML相关的工作。

    dom4j操作xml

    在本文中,我们将深入探讨DOM4J如何进行XML操作,包括增加、删除和修改XML元素。 首先,我们需要理解XML的基本结构。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它使用标签来描述数据。DOM4J通过...

    dom4j_XML.rar_DOM4J_dom4j xml

    在"dom4j_XML"这个例子中,可能包含了创建一个XML文件,然后用DOM4J进行解析和操作的完整流程。开发者可能会学习如何读取XML文件,获取特定元素的值,修改元素或属性,以及如何将修改后的文档保存回XML文件。这样的...

    dom4j操作XMl例子

    在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件。 首先,我们需要了解DOM4J的基本概念。DOM4J采用Document Object Model (DOM)接口,但它的实现比标准DOM更快,占用内存更...

    dom4j解析xml文件(增删改查)

    在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...

    dom4j解析XML所需jar包

    1. **DOM4J API**:DOM4J提供了一组直观的类和接口来操作XML文档,如`Element`代表XML元素,`Attribute`代表属性,`Document`表示整个XML文档,还有`Namespace`处理命名空间。通过这些API,开发者可以轻松地创建、...

    dom4j xml解析

    在Java应用中,DOM4J经常被用作XML处理的标准库,特别是在那些需要高效XML操作的场景中。 在使用DOM4J解析XML时,可能会遇到一个特定的问题:`java.lang.IllegalStateException`异常。这个异常通常意味着在执行某些...

    使用dom4j和jaxen解析xml

    - **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...

Global site tag (gtag.js) - Google Analytics