`
nightbin0420
  • 浏览: 8519 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

dom4j读写xml例子

XML 
阅读更多

package com.hw.DOM4J;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import com.hw.MyException;

/**
 * @author Administrator
 * 
 *   获取节点的文字
 *   String text=memberElm.getText();
 *   或者可以用  String text=root.elementText("name");
 *
 *
 *
 */
public class TestDemo extends MyException{
 
 
  public TestDemo(String message) {
  super(message);
  // TODO Auto-generated constructor stub
 }

 /**
  *
  */
 

 public static void main(String[] args) {
   String pathname="src/com/hw/xiongmao2.xml";//(另一种格式d:\\xiongmao.xml)
   File file=new File(pathname);
   Element root=null;
   boolean flag=false;
   XMLWriter writer=null;
   Document doc=null;
   OutputFormat format=null;
   try {
    //声明写xml的对象
    //
   format=OutputFormat.createPrettyPrint();
    format.setEncoding("GBK");//设置xml文件的编码格式 
   //判断文件是否存在
    if(file.exists()){
    SAXReader reader=new SAXReader();
   
   
   
    doc=reader.read(file);//读取xml文件
   
   
   
   root=doc.getRootElement();//得到根结点
   
   
   Element xiongmao=null;
   Element name=null;
   
   
   for(Iterator iterator=root.elementIterator("xiongmao");iterator.hasNext();){
    xiongmao=(Element) iterator.next();
    
    String belong=xiongmao.attributeValue("belong");//获得belong属性
    System.out.println(belong);
    
    String username=xiongmao.elementText("name");//获得name元素值
    
    System.out.println(username);
    //如果有多个name元素,则如下:
    for(Iterator iterator2=xiongmao.elementIterator("name");iterator2.hasNext();){
     name=(Element) iterator2.next();
     String id=name.attributeValue("id");
     
     System.out.println(id);
     //通过迭代得到name元素值
     System.out.println(name.getText());
     System.out.println(name.getData());
    }
    //得到birthdate元素
    String birthdate=xiongmao.elementText("birthdate");
    System.out.println(birthdate);
    
    //修改
    if(xiongmao.attributeValue("belong").equals("zhangbin")){
     //修改belong="zhangbin"的信息
     
     //只能修改一个name元素的值
        xiongmao.selectSingleNode("name").setText("baby");
     xiongmao.selectSingleNode("height").setText("167");
     System.out.println("---修改成功---");
     writer=new XMLWriter(new FileWriter(file),format);
     writer.write(doc);
     writer.close();
     flag=true;
     break;
    }
   }
   
   
   //添加一个xiongmao
   if(flag){
    
   Element  mao=root.addElement("xiongmao");
   mao.addAttribute("belong", "zhangbin1");
   
   Element name_name1=mao.addElement("name");
   name_name1.addAttribute("id", "03");
   name_name1.setText("sweet cat");
   
   Element name_name2=mao.addElement("name");
   name_name2.addAttribute("id", "04");
   name_name2.setText("darling");
   
   
   Element _height=mao.addElement("height");
   _height.setText("162");
       
   try {
    writer=new XMLWriter(new FileWriter(file),format);
    writer.write(doc);
    writer.close(); 
    System.out.println("---添加成功---");
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  
   
   }
   
    }
   
   
   
   
    else {
    //新建xiongmao2.xml
    
     //创建 document
     Document _dDocument=DocumentFactory.getInstance().createDocument();
    
    
    
     // 创建下列元素
     Element _root=_dDocument.addElement("xiongmaos");//创建根元素
     //注意目录元素,不能随便创建  需要与根元素对应
     _root.addAttribute("xiongmao", "http://www.baidu.com");
    
     Element  mao=_root.addElement("xiongmao");
     mao.addAttribute("belong", "zhangbin1");
     
     Element name_name1=mao.addElement("name");
     name_name1.addAttribute("id", "03");
     name_name1.setText("sweet cat");
     
     Element name_name2=mao.addElement("name");
     name_name2.addAttribute("id", "04");
     name_name2.setText("darling");
     
     
     Element _height=mao.addElement("height");
     _height.setText("162");
    
    
     writer=new XMLWriter(new FileWriter(file),format);
     writer.write(_dDocument);
     writer.close(); 
     System.out.println("---创建成功---");
     
    throw new MyException("file不存在");
   }
  } catch (DocumentException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (MyException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 

 }
 
 

}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    dom4j关于xml读写的例子里面还有dom4j的jar包

    dom4j关于xml读写的例子里面还有dom4j的jar包,对初学者很有帮助

    java 操作xml 源码(包括dom dom4j 读写XML)

    java操作xml源码 操作方式包括:dom和dom...dom4j是开源的性能以及效率最好的,也是一个典型例子。 本源码下下来运行test.java直接运行。 其中包括:采用dom写xml 以及dom方式读XML 采用dom4j写xml 以及dom4j方式读XML

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    dom4j读写xml!例子比较简单..................................................

    dom4j读写xml文件

    使用dom4j读写xml的一个小例子 给大家参考下 代码和使用的包都上传 大家要修改下xml路径即可

    Java+flex使用dom4j读写xml

    2.Java方面,使用dom4j对xml进行操作,包括节点的读取,添加,修改,删除。 3.Flex方面,使用DataGrid呈现数据;使用RemoteObject构建和Java的通信;使用到了验证控件Validator;使用了CSS样式对Alert对话框进行了...

    使用Dom4j解析复杂的XML文件

    使用Dom4j解析复杂的XML文件,简单的xml文件一个标签对,而复杂的xml文件标签对中还有自己的属性,那么这样的xml文件怎么解析呢?看了我的例子就知道了......

    DOM4J很全的学习资料知识点讲解加上例子

    DOM4J很全的学习资料知识点讲解加上例子,总结的很详细。对学习DOM4J很有帮助,可作为入门 也可以作为参考资料

    Dom4J采用XPath操纵XML教程及例子

    Dom4J采用XPath操纵XML教程及例子,提供入门教程,源代码及有关jar包,并提供对XPath的支持,包含基本的增删改查的操作,由此可举一反三

    dom4j 对xml的增,删,改

    可以作为参考,不是最好的,谢谢,如遇到什么问题可以讨论,330326231 是我的QQ

    java使用dom4j操作xml示例代码

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件,下面我来个小例子学习他的使用方法

    java list和xml互转例子

    文件里包含jar包 dom4j-1.6.1.jar,list中放多个map,map里随意放键值对,最后可转换为xml文档,xml文档也可以解析存入list文件中

    JAVA利用DOM对XML的相关操作

    JAVA利用DOM对XML的相关操作,创建,解析都各有一个例子 其中创建分有规律的节点创建,和不规律的节点创建,并附有详细说明及运行效果图, 上传的资料忘记整理了,工程里面的四个XML是程序生成的,请先删除.

    dom4j的简单案例

    dom4j 的一个简单的例子,主要数通过两种方式对xml文件进行解析的。是一个关于权限的简单的例子。

    JavaXml读写操作四种方式汇总

    涵盖了DOM、SAX、JDOM和DOM4J四种方式,读写xml。都给出了具体例子,都是可执行的。

    dom4j的用法包括简单的文件的创建、修改,以及xpath的应用

    dom4j的用法包括简单的文件的创建、修改,以及xpath的应用 ... chm对dom4j的用法做了详细的说明,html文件对xpath的应用做了详细的说明,java文件是整合的一个例子。 其中chm与xpath是引用的资源。

    js操作xml例子包括对属性的操作

    经常用到对xml的操作,Java里面有dom和dom4j等工具类,但是Javascript就没有,所以自己写了一个,目前算作第一个版本吧。肯定还有很多地方需要改进,如果有需要用的朋友,可以把bug和需要完善改进的地方留言或评论。...

    JAVA DOM解析XML文件过程详解

    主要介绍了JAVA DOM解析XML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    使用jaxp开发包中的SAX方式解析xml文档

    day02_xml *demo01.App1\App2\App3 使用jaxp开发包中的SAX方式解析xml文档,该方式只能读取文档 *demo4j01.App dom4j CURD XML *domo4j.ex 对dom4j 的封装例子

    JAVA与C#解析XML报文例子

    java 利用了xml报文传输,在java中使用了dom4j解析器进行对xml字符串解析. c#利用XmlDataDocument解析XML报文的简单应用.

    XML解析DOM/SAX/PULL

    三种XML的解析方法,DOM SAX PULL程序例子代码,希望对您有帮助。

Global site tag (gtag.js) - Google Analytics