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();
}
}