首页 > 代码库 > java dom4j解析xml实例(3)

java dom4j解析xml实例(3)

代码运行前需要先导入dom4j架包。

需要解析的XML文件test.xml如下:

<students>      <student age="25"><!--如果没有age属性,默认的为20-->          <name>崔卫兵</name>          <college>PC学院</college>          <telephone>62354666</telephone>          <notes>男,1982年生,硕士,现就读于北京邮电大学</notes>     </student>      <student age="26">          <name>cwb</name>          <college leader="学院领导">PC学院</college><!--如果没有leader属性,默认的为leader-->         <telephone>62358888</telephone>          <notes>男,1987年生,硕士,现就读于中国农业大学</notes>      </student> </students> 

 

<1>、当测试文件test.xml在D盘时,Java程序代码如下:

package Test01;import java.io.FileNotFoundException;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class test01 {	public void testRead() throws DocumentException, FileNotFoundException{		SAXReader reader=new SAXReader();		Document doc=reader.read("D:/test.xml");		Element root =doc.getRootElement();		for(@SuppressWarnings("rawtypes")		Iterator it=root.elementIterator();it.hasNext();){			Element element=(Element)it.next();			System.out.println(element.attribute("age").getName()+" == "+element.attribute("age").getValue());			System.out.println(element.attributeValue("age"));			System.out.println(element.getName());			for(@SuppressWarnings("rawtypes")			Iterator itt=element.elementIterator();itt.hasNext();){				//System.out.println(element.attributeValue("age"));				Element el=(Element)itt.next();				System.out.println(el.getName()+"=="+el.getText());  				//getText()获取的是两个标签间的数据如"<name>崔卫兵</name>"中的崔卫兵				//getName()获取的是标签名,即“<student age="25"><name>崔卫兵</name>”中的age和name				//attributeValue("age")可获取age的值即25			}			System.out.println("==================");					}	}		public static void main(String[] args){		try {			new test01().testRead();		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		} 	}}

 

代码运行后控制台显示结果如下:

 

<2>、当测试文件test.xml和项目在一起时,Java程序代码如下:

package Test01;import java.io.FileNotFoundException;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class test01 {	public static void testRead(String path) throws DocumentException, FileNotFoundException{		SAXReader reader=new SAXReader();		//Document doc=reader.read("D:/test.xml");		Document doc = reader.read(path);		Element root =doc.getRootElement();		for(@SuppressWarnings("rawtypes")		Iterator it=root.elementIterator();it.hasNext();){			Element element=(Element)it.next();			System.out.println(element.attribute("age").getName()+" == "+element.attribute("age").getValue());			System.out.println(element.attributeValue("age"));			System.out.println(element.getName());			for(@SuppressWarnings("rawtypes")			Iterator itt=element.elementIterator();itt.hasNext();){				//System.out.println(element.attributeValue("age"));				Element el=(Element)itt.next();				System.out.println(el.getName()+"=="+el.getText());  				//getText()获取的是两个标签间的数据如"<name>崔卫兵</name>"中的崔卫兵				//getName()获取的是标签名,即“<student age="25"><name>崔卫兵</name>”中的age和name				//attributeValue("age")可获取age的值即25			}			System.out.println("==================");					}	}		public static void main(String[] args){//		try {//			new test01().testRead();//		} catch (Exception e) {//			// TODO Auto-generated catch block//			e.printStackTrace();//		} 		try {			testRead("test.xml");		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (DocumentException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}}

 

代码运行后控制台显示结果如下: