dom4j 解析多个xml文件 生成到同一个xml文件中

1、先导包dom4j包  自行下载

2、在e盘 创建 E://5566文件夹, 文件夹内放入多个xml文件

xml文件格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<sex>m</sex>
<age>400</age>
</employee>
</employees>


package test;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Iterator;


import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;


/**
 * Java 反射之属性练习。
 * 
 * @author Wanggc
 */
public class ReflectionTest {


public static void main(String [] args) throws IOException, DocumentException{

  // XML 声明 <?xml version="1.0" encoding="UTF-8"?> 自动添加到 XML文档中 


// 使用DocumentHelper类创建文档实例(生成 XML文档节点的 dom4j API工厂类)  
Document document = DocumentHelper.createDocument();  

// 使用addElement()方法创建根元素 employees(用于向 XML 文档中增加元素)
 Element root = document.addElement("employees");  //创建
 
File file2=new File("E://5566");//创建要解析的xml路径(这里是多个xml文件)

 String test[];
 test=file2.list();
 for(int i=0;i<test.length;i++) //遍历并 获取这个路径下的xml文件名
 {
 File file3=new File(file2+"//"+test[i]);//拼接这个xml全路径
 
 Document document1 = null;  
 
 // 使用 SAXReader 解析 XML 文档 catalog.xml:  
 SAXReader saxReader = new SAXReader(); 
 
 //开始读取
 document1 = saxReader.read(file3);  
 
 // 获取根节点  
 Element root1 = document1.getRootElement(); 
 
 // 获取根节点下的子节点遍历  
 Iterator<?> iter = root1.elementIterator("employee");  
 
// 遍历employee节点  
 while (iter.hasNext()) {
 //这里开始创建一个employee 节点 , 看清楚是root不是root1,是我们将要创建的xml,不是要解析的
           Element employee = root.addElement("employee"); 
           
           // 获取当前子节点  
           Element empEle = (Element) iter.next();  
           // 遍历employee节点下所有子节点  
           Iterator<?> eleIte = empEle.elementIterator(); 
          
           //如果节点下有子节点的话开始执行
           while (eleIte.hasNext()) {
            // 获取当前子节点  
               Element ele = (Element) eleIte.next();  
               System.out.println(ele.getName());//节点名称
               System.out.println(ele.getTextTrim()); //节点内容
               Element sex = employee.addElement(""+ele.getName()+""); //添加名称   到employee节点下
               sex.setText(""+ele.getTextTrim()+"");  //添加内容   到employee节点下
           }
       }
 }
 
 File file = new File("e:/dom4j88.xml");  
 XMLWriter output = new XMLWriter(new FileWriter(file));  
          output.write(document);  
          output.close();  

}
}


你可能感兴趣的:(dom4j)