首页 > 代码库 > 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(); } }}
代码运行后控制台显示结果如下:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。