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 }