Dom4j循环读取xml节点

进期在做数据处理,遇到使用Dom4j解析文件,记录demo备用。

需求:循环出多个同一父节点下多个字字节点的数据,然后把这些数据按照顺序重新生成新的放入到新的节点名不同的xml内。

准备:dom4j-1.6.1.jar、原始xml文件



    1.0
    巴伦创维
    
<信息标题>信息标题1 <内容描述>内容描述1 <信息内容>信息内容1 <创建日期>创建日期 <成文日期>创建日期     
    
<信息标题>信息标题2 <内容描述>内容描述2 <信息内容>信息内容2 <创建日期>创建日期2 <成文日期>成文日期2     
    
<信息标题>信息标题3 <内容描述>内容描述3 <信息内容>信息内容3 <创建日期>创建日期3 <成文日期>成文日期3     
    
<信息标题>信息标题4 <内容描述>内容描述4 <信息内容>信息内容4 <创建日期>创建日期4 <成文日期>成文日期4     
    
<信息标题>信息标题5 <内容描述>内容描述5 <信息内容>信息内容5 <创建日期>成文日期5 <成文日期>成文日期5     
    
<信息标题>信息标题6 <内容描述>内容描述6 <信息内容>信息内容6 <创建日期>成文日期6 <成文日期>成文日期6     

直接贴代码:

package mysqlxml;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 
 * 数据处理,xml转换节点名称
 * @author baron
 *
 */
public class Dom4jDemo1 {
	
    /**
     * 转换xml节点名称
     * @param node 根节点
     */
    public void exportNewXML(Element node){
	String xml="";
    	xml+="\r\n";
    	xml+="";
    	xml+="\r\n";
    	xml+="\t"+"1.0";
    	xml+="\r\n";
    	xml+="\t"+"巴伦创维";
    	xml+="\r\n";
	//获取子节点集合
    	List elarts = node.elements();
    	
    	try {
    		//循环
    		for (Element ele : elarts) {
    			//获取article子节点的数据跟xml拼接,生成新的xml文件
    			if(ele.getName().equals("article")){
    				xml+="\t"+"
"+"\r\n"; xml+="\t"+"\t"+""+ ele.element("信息标题").getText() +"" +"\r\n"; xml+="\t"+"\t"+""+ ele.element("创建日期").getText() +"" +"\r\n"; xml+="\t"+"\t"+""+ ele.element("成文日期").getText() +"" +"\r\n"; xml+="\t"+"\t"+""+ ele.element("内容描述").getText() +"" +"\r\n"; xml+="\t"+"\t"+""+ ele.element("信息内容").getText() +"" +"\r\n"; xml+="\t"+"
"+"\r\n"; } } xml+="
"; //指定新文件生成地址并生成 File f = new File("F://new/新的.xml"); OutputStream out = null ; out = new FileOutputStream(f); byte b[] =xml.getBytes() ; out.write(b) ; } catch (Exception e) { e.printStackTrace(); } System.out.println("成功了!"); } public static void main(String[] args) throws DocumentException { SAXReader red = new SAXReader(); //读取文件 Document document = red.read(new File("F://new/旧的.xml")); Element node = document.getRootElement(); Dom4jDemo1 dd = new Dom4jDemo1(); dd.exportNewXML(node); } }

运行结果:



	1.0
	巴伦创维
	
信息标题1 创建日期 创建日期 内容描述1 信息内容1
信息标题2 创建日期2 成文日期2 内容描述2 信息内容2
信息标题3 创建日期3 成文日期3 内容描述3 信息内容3
信息标题4 创建日期4 成文日期4 内容描述4 信息内容4
信息标题5 成文日期5 成文日期5 内容描述5 信息内容5
信息标题6 成文日期6 成文日期6 内容描述6 信息内容6
结束。


你可能感兴趣的:(java)