XML解析

 1 <?xml version="1.0" encoding="GBK"?>
 2 <addresslist>
 3     <linkman>
 4         <name>李兴华</name>
 5         <email>mldnqa@163.com</email>
 6     </linkman>
 7     <linkman>
 8         <name>MLDN</name>
 9         <email>mldnkf@163.com</email>
10     </linkman>
11 </addresslist>

 

 1 import java.io.* ;
 2 import org.w3c.dom.* ;
 3 import javax.xml.parsers.* ;
 4 public class DOMDemo {
 5     public static void main(String args[]) throws Exception {
 6         // 取得DocumentBuilderFactory类的对象
 7         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance() ;
 8         // 取得DocumentBuilder类的对象
 9         DocumentBuilder build = factory.newDocumentBuilder()  ;
10         Document doc = build.parse(new File("D:" + File.separator + "dom_demo_01.xml")) ;
11         // 得到所有的linkman节点
12         NodeList nl = doc.getElementsByTagName("linkman") ;
13         for(int x=0;x<nl.getLength();x++){
14             Element e = (Element) nl.item(x) ;    // 取出每一个元素
15             System.out.println("姓名:" + e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue()) ;
16             System.out.println("邮箱:" + e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue()) ;
17         }
18     }
19 }

xml解析有两种方式:Dom和SAX,sax是解析的时候扫描过程但sax需要先建立一个sax解析器,于是出现了开源的JDOM解析方式:

 1 package org.lxh.xml.jdom ;
 2 import java.io.* ;
 3 import java.util.* ;
 4 import org.jdom.* ;
 5 import org.jdom.input.* ;
 6 public class ReadXML {
 7     public static void main(String args[]) throws Exception {
 8         SAXBuilder builder = new SAXBuilder() ;
 9         Document read_doc = builder.build(new File("D:" + File.separator + "address.xml")) ;
10         Element root = read_doc.getRootElement() ;    // 取得根
11         List list = root.getChildren("linkman") ;    // 得到所有的linkman
12         for(int x=0;x<list.size();x++){
13             Element e = (Element) list.get(x) ;
14             String name = e.getChildText("name") ;    // 得到name子节点的内容
15             String id = e.getChild("name").getAttribute("id").getValue() ;
16             String email = e.getChildText("email") ;
17             System.out.println("-------------- 联系人 -------------") ;
18             System.out.println("姓名:" + name + ",编号:" + id) ;
19             System.out.println("EMAIL:" + email) ;
20             System.out.println("-----------------------------------") ;
21             System.out.println() ;
22         }
23     }
24 }

 

posted @ 2014-12-08 16:21  疾风剑  阅读(173)  评论(0编辑  收藏  举报