`
wang_zhi_peng2007
  • 浏览: 248769 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dom4j读写XML及保存批量数据对象

 
阅读更多

1. 创建一个People对象

 

 

package XML;

public class People {

	public People() {
		// TODO Auto-generated constructor stub
	}
   private String name;
   private int age;
   private String sex;
   
   public void tell(){  //取得信息的方法   
    System.out.println(" 姓名:"+this.getName()+"  年龄:"+this.getAge()+"  性别:"+this.getSex());
   }
   
   public People(String name,int age,String sex){
	   this.setName(name);
	   this.setAge(age);
	   this.setSex(sex);
   }
   
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		if(age>=0){
			this.age = age;
		}else{
			this.age = 0;
		}
		
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
   public static void main(String args[]){  
	   new People("wangwu",-10,"男").tell();
   } 
	
}

 

2. 创建,解析XML及导入批量数据到XML中

  

package XML;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class XmlOperate {
//创建XML
public void CreateXml(){
   Document doc = DocumentHelper.createDocument();      //创建文档  (树形结构)
  Element e1 = doc.addElement("province");          //定义根节点 (第一层)
  Element e2 = e1.addElement("people");               //定义子节点(第二层)
  Element name1 = e2.addElement("name");          //定义子节点(第三层)
  Element age1 = e2.addElement("age");                //定义子节点(第三层)
  Element sex1 = e2.addElement("sex");                //定义子节点(第三层) 
   name1.setText("张三");                                       //设置子节点内容
  age1.setText("30");
   sex1.setText("男");
		
  Element xe2 = e1.addElement("people");        //定义子节点(第二层)
  Element name2 = xe2.addElement("name");    //定义子节点(第三层)
  Element age2 = xe2.addElement("age");        //定义子节点(第三层)
  Element sex2 = xe2.addElement("sex");         //定义子节点(第三层) 
  name2.setText("李四");                                    //设置子节点内容
 age2.setText("29");
  sex2.setText("女");
		
  OutputFormat format= OutputFormat.createPrettyPrint();   
    //设置输出格式
  format.setEncoding("GBK");                           //设置输出编码
   try {
       XMLWriter write = new  XMLWriter(new FileOutputStream("D:"+File.separator+"output.xml"),format);  //创建输出文件
     write.write(doc);                           //输出
     write.close();
       System.out.println("xml文件创建成功!");
        } catch (IOException e) {
           e.printStackTrace();
        }
    }
	
   //解析XML
   public void ReadXml(){
    File file1 = new File("D:"+File.separator+"output.xml");
    //读取XML文件对象	
   SAXReader read=new SAXReader();              //建立SAX解析读取
   Document doc = null;                                     //创建文档
     try {
	doc= read.read(file1);
            } catch (DocumentException e) {
	e.printStackTrace();
            }
       //取得根元素
     Element root= doc.getRootElement();           
       //取得全部的子节点
     Iterator it1= root.elementIterator();
        while(it1.hasNext()){
              Element linkname=(Element)it1.next();    //取得一个节点对象
         System.out.print("姓名:"+linkname.elementText("name"));     
            //取得name元素内容
        System.out.print(" 年龄:"+linkname.elementText("age"));     
           //取得age元素内容
       System.out.println(" 性别:"+linkname.elementText("sex"));  
           //取得sex元素内容
     }
	 //取得节点 id="test" 里边的数据
   }

//批量数据生成xml
public void ImpAllXml(List<People> people){
Document doc = DocumentHelper.createDocument();            //创建文档
Element root= doc.addElement("shanxi");                     //创建根节点int  m= people.size();
for(int i=0; i<m; i++){
  Element ele =root.addElement("people");       //定义对象节点
  ele.addAttribute("id", "test"+(i+1)+"");           //增加节点属性
  Element name = ele.addElement("name");      //定义属性节点 
  Element age = ele.addElement("age");                    
   Element sex = ele.addElement("sex");	
   name.setText(people.get(i).getName());         //为对应节点赋值
  age.setText(String.valueOf(people.get(i).getAge()));
   sex.setText(people.get(i).getSex());
}
  OutputFormat format= OutputFormat.createPrettyPrint();      
    //设置输出格式
   format.setEncoding("GBK");                                //设置输出编码
 try {
   XMLWriter write = new XMLWriter(new FileOutputStream("D:"+File.separator+"test.xml"),format);
    write.write(doc);
    write.close();
    System.out.println("创建text.xml文件成功!");
     } catch (IOException e) {
	e.printStackTrace();
       }		
}
	
	/**
	 * xml创建和解析
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		XmlOperate  xml = new XmlOperate();
		//xml.ReadXml();             //读取xml
		
		//批量数据生成xml
		List<People> list = new ArrayList<People>(); 
		 list.add(new People("川",28,"男") );
		 list.add(new People("春",28,"男"));
		 list.add(new People("小田",28,"男"));
		 list.add(new People("liu",32,"男"));
		 list.add(new People("燕",26,"女"));
		 list.add(new People("郭",29,"男"));
		xml.ImpAllXml(list);
		 
	}

}

 

3.相关的XML

 

<?xml version="1.0" encoding="GBK"?>
<province>
  <people>
    <name>张三</name>
    <age>30</age>
    <sex>男</sex>
  </people>
  <people id="test">
    <name>李四</name>
    <age>20</age>
    <sex>女</sex>
  </people>
</province>

 

  

<?xml version="1.0" encoding="GBK"?>

<shanxi>
  <people id="test1">
    <name>川</name>
    <age>28</age>
    <sex>男</sex>
  </people>
  <people id="test2">
    <name>春</name>
    <age>28</age>
    <sex>男</sex>
  </people>
  <people id="test3">
    <name>小田</name>
    <age>28</age>
    <sex>男</sex>
  </people>
  <people id="test4">
    <name>liu</name>
    <age>32</age>
    <sex>男</sex>
  </people>
  <people id="test5">
    <name>燕</name>
    <age>26</age>
    <sex>女</sex>
  </people>
  <people id="test6">
    <name>郭</name>
    <age>29</age>
    <sex>男</sex>
  </people>
</shanxi>

 

 

 

分享到:
评论

相关推荐

    用dom4j对xml进行增删改查操作参考资料

    在提供的资源中,"dom4j读写XML及保存批量数据对象 - 五月天的博客 - ITeye技术网站.bmp"可能是一个教程页面的截图,它会详细解释这些操作的实现步骤。如果你遇到任何问题,可以参考这个截图或者在ITeye技术网站上...

    使用dom4j读取xml四种方法

    **应用场景**:适用于需要对XML中的特定节点进行批量查询的情况,特别适合于结构相对固定的XML文档。 #### 方法三:使用`VisitorSupport`进行访问 **方法原理**: 该方法通过`VisitorSupport`实现类来遍历整个XML...

    java使用DOM4J对XML文件进行增删改查操作

    使用 DOM4J 库可以将 Document 对象持久化保存到 XML 文件中,例如将修改后的 Document 对象保存到新的 XML 文件中。 代码示例: ```java private static void writeToNewXMLDocument(Document document) { try { ...

    XMLDOM.rar_PHP DOM_数据批量处理

    它可能包括了如何打开XML文件、查询数据、修改数据,以及如何保存更改后的文档到新的XML文件等步骤。这样的脚本对于理解如何利用PHP DOM处理批量XML数据非常有帮助。 在实际应用中,处理大量XML数据时,性能是一个...

    poi3.9 poi3.10 poi3.15 dom4j综合jar包

    DOM4J是Java的一个优秀XML处理框架,常用于读写、操作XML文档。 1. **Apache POI**: POI项目是Apache软件基金会的一部分,它提供了一组API,允许开发者使用Java来创建、修改和显示MS Office文件。在Excel处理方面,...

    java 解析xml 并导入数据库(dom4j )

    本篇将详细介绍如何使用DOM4J库来解析XML,并将解析得到的数据有效地导入到数据库中。 DOM4J是一个非常流行的Java XML API,它提供了丰富的功能,包括读取、写入、修改和处理XML文档。相比于其他的解析器如DOM和SAX...

    Microsoft_XMLDOM帮助

    2. **XSLT转换**:XMLDOM可以与XSLT(可扩展样式表语言转换)配合使用,通过`transformNode()`和`transformNodeToObject()`方法对XML进行格式化或转换。 3. **ActiveXObject**:在Internet Explorer中,XMLDOM通常...

    dom4j读取大文件的缓存方式

    DOM4J是一个强大的Java库,专门用于处理XML文档。在处理大文件时,直接使用DOM解析方式可能会导致内存溢出,因为DOM会一次性加载整个XML文档到内存中。为了解决这个问题,DOM4J提供了流式(SAX)和事件驱动...

    java批量处理word,包含批量转word与xml互转,去除首尾页面,批量追加文字,批量修改log图片,创建页眉、页脚,修改无规则的数据等等

    因此,DOM4J可以用来解析和修改Word文档的内部XML结构,从而实现对文档内容的高级控制。 批量转Word与XML互转:docx4j是一个强大的Java库,专门用于处理Open XML文档,包括Word的.docx格式。它可以轻松地将.docx...

    以读取XML方式的大批量导入Excel

    这篇博客“以读取XML方式的大批量导入Excel”介绍了一种高效处理Excel数据的方法,特别是当数据量非常大时,传统的API可能无法满足性能需求。XML作为一种结构化的数据格式,能够很好地存储和传输大量数据,因此,...

    Dom4j junit等等自用的 上传备份一下

    2. **XPath支持**:Dom4j提供了对XPath表达式的支持,使得开发者能够通过简单的路径表达式定位XML文档中的元素。 3. **文档操作**:你可以创建新的XML文档,添加、删除或修改元素、属性,甚至处理命名空间。 4. **...

    xml与数据库中数据的导入导出

    10. **测试与调试**:编写单元测试以验证XML解析、数据库操作和数据导入导出的功能,使用日志记录工具(如Log4j)来跟踪程序运行情况,帮助调试和问题定位。 以上就是关于“XML与数据库中数据的导入导出”的核心...

    XML-DOM.rar_DOM

    **XML(可扩展标记语言)DOM(文档对象模型)详解** XML,全称为eXtensible Markup Language,是一种用于存储和传输数据的标记语言。它以其结构化、自描述性和平台独立性,广泛应用于Web应用程序、数据交换、配置...

    sqlite3 xml读写

    - 将DOM树序列化为XML字符串,保存到文件。 5. **XPath**:XPath是XML的一个查询语言,用于选取XML文档中的节点。在处理XML和SQLite3的交互时,XPath可以用来定位特定的XML元素,从而提取或更新数据。 6. **XML ...

    matlab读取XML,XML转换为matlab

    这样,Matlab用户就能利用其强大的数学运算能力对XML数据进行分析和处理。 ### 2. 读取XML - `xmlread`: 这个函数用于从XML文件中读取数据,返回一个XML DOM(Document Object Model)对象。DOM是一种树形结构,...

    XMLDom参考手册

    - **DOMParser**:在JavaScript中,可以使用`DOMParser`对象解析XML字符串到DOM文档。 - **XMLHttpRequest**:通过`XMLHttpRequest`加载XML文件,然后使用`responseXML`属性获取DOM表示。 3. **遍历DOM** - **...

    基于XML的批量数据处理与分析——以电子试卷为例.pdf

    XPath(XML Path Language)是一种用于对XML文档中的节点寻址的语言,它采用非XML表达式来定位节点。通过XPath表达式,可以选定指定的节点并进行各种操作,如获取节点的值或获取指定属性的值。XPath通常用作配置文件...

    Dom文档对象模型-2010版

    DOM(Document Object Model)文档对象模型是W3C组织制定的一种标准,用于表示XML和HTML文档的结构化接口。这个2010版的手册是Web开发者和Ajax爱好者的重要参考资料,它详细阐述了如何通过编程方式操作、遍历和修改...

    UTKinect-Action数据库中xml数据读取成mat文件

    `run.m`脚本可能是用来自动化整个转换过程的,它可能调用`xml2struct.m`对整个数据库的XML文件进行批量处理。 另外,`xml2img.m`可能用于将XML文件中的骨骼信息转化为图像。在人体动作识别中,将骨骼数据可视化为...

Global site tag (gtag.js) - Google Analytics