JAVA-DOM4J和JDOM的读写操作

读写XML文档可以用4种方式,分别是DOM.SAX.JDOM.DOM4J,其中JDOM和DOM4J是框架

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Students>
	<student id="012">
		<name id="01" xx="02">邬国通</name>
		<age>12</age>
	</student>
		<student>
		<name >李思慧</name>
	</student>

</Students>

JDOM的读XML:

package xml;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;

public class JDOM {
	public static void main(String[] args) throws Exception{
		SAXBuilder builder=new SAXBuilder();//得到SAX解析器
		Document document=builder.build("src/xml01.xml");//进行解析
		Element students=document.getRootElement();//获取根节点
		List studentList=students.getChildren("student");//获取子节点
		for(int i=0;i<studentList.size();i++){
			Element student=(Element)studentList.get(i);//LIST转为元素
			String id=student.getAttributeValue("id");
			String name=student.getChildText("name");
		
			System.out.println(name+id);
		}
	}
}

DOM4J的读操作:

package xml;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class jdom4 {

	public static void main(String[] args) throws Exception{
		SAXReader saxReader=new SAXReader();//创建SAX解析器
		Document document=saxReader.read("src/xml01.xml");//解析
		Element rootElement=document.getRootElement();//获取根节点元素
		Iterator iter=rootElement.elementIterator();//获取子节点
		while(iter.hasNext()){//直到没有才停止
			Element studentElement=(Element)iter.next();//下一个节点元素
			System.out.println("学号:"+studentElement.attributeValue("id"));
			System.out.println("姓名:"+studentElement.elementText("name"));
			System.out.println("=========");
		}
	}
}

DOM4J的写操作:

package xml;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class dom4j {

	public static void main(String[] args) {
		Document document=DocumentHelper.createDocument();//获取document对象
		Element studentElement=document.addElement("student");//创建根元素
		studentElement.addAttribute("id", "001");//设置某节点的属性和文字.  
		studentElement.addAttribute("aa", "xx");//设置某节点的属性和文字.  
		
		Element name=studentElement.addElement("name");//添加子节点
		name.setText("张三");
		Element sex=studentElement.addElement("sex");//添加子节点
		sex.setText("男");
		Element age=studentElement.addElement("age");//添加子节点
		age.setText("20");
		
		OutputFormat format=OutputFormat.createPrettyPrint();//输出
		format.setEncoding("UTF-8");
		try {
			XMLWriter writer=new XMLWriter(new FileOutputStream("src/student3.xml"),format);
			writer.write(document);
			writer.close();
			
			
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_39051908/article/details/81014229