你的位置:首页 > Java教程

[Java教程]java读取xml文件的四种方法


 1 <??>  2 <RESULT>  3 <VALUE>     4  <NO>A1234</NO>     5  <ADDR>河南省郑州市</ADDR>  6 </VALUE>  7 <VALUE>     8  <NO>B1234</NO>     9  <ADDR>河南省郑州市二七区</ADDR> 10 </VALUE> 11 </RESULT>

第一种 DOM 实现方法:

 1 import java.io.File;   2   3 import javax. 4 import javax. 5   6 import org.w3c.dom.Document;   7 import org.w3c.dom.NodeList;   8   9 public class My10 public static void main(String arge[]) {  11  12  long lasting = System.currentTimeMillis();  13  14  try {  15   File f = new File("data_10k.);  16   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  17   DocumentBuilder builder = factory.newDocumentBuilder();  18   Document doc = builder.parse(f);  19   NodeList nl = doc.getElementsByTagName_r("VALUE");  20  for (int i = 0; i < nl.getLength(); i++) {  21   System.out.print("车牌号码:"+ doc.getElementsByTagName_r("NO").item(i).getFirstChild().getNodeValue());  22   System.out.println("车主地址:"+ doc.getElementsByTagName_r("ADDR").item(i).getFirstChild().getNodeValue());  23   }  24  } catch (Exception e) {  25   e.printStackTrace();  26   }  27 }  28 } 

第二种,DOM4J实现方法

 1 import java.io.*;   2 import java.util.*;   3 import org.dom4j.*;   4 import org.dom4j.io.*;   5   6 public class My 7 public static void main(String arge[]) {   8  long lasting = System.currentTimeMillis();   9  try {  10   File f = new File("data_10k.);  11   SAXReader reader = new SAXReader();  12   Document doc = reader.read(f);  13   Element root = doc.getRootElement();  14   Element foo;  15  for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {  16   foo = (Element) i.next();  17   System.out.print("车牌号码:" + foo.elementText("NO"));  18   System.out.println("车主地址:" + foo.elementText("ADDR"));  19   }  20  } catch (Exception e) {  21   e.printStackTrace();  22   }  23 }  24 } 

第三种 JDOM实现方法:

 1 import java.io.*;   2 import java.util.*;   3 import org.jdom.*;   4 import org.jdom.input.*;   5   6 public class My 7 public static void main(String arge[]) {   8  long lasting = System.currentTimeMillis();   9  try {  10   SAXBuilder builder = new SAXBuilder();  11   Document doc = builder.build(new File("data_10k.));  12   Element foo = doc.getRootElement();  13   List allChildren = foo.getChildren();  14  for (int i = 0; i < allChildren.size(); i++) {  15   System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText());  16   System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText());  17   }  18  } catch (Exception e) {  19   e.printStackTrace();  20   }  21 }  22 }

第四种SAX实现方法:

 1 import javax. 2 import javax. 3   4 import org. 5 import org. 6 import org. 7 import org. 8   9 public class Myextends DefaultHandler {  10  11 java.util.Stack tags = new java.util.Stack();  12  13 public My14  super();  15 }  16  17 public static void main(String args[]) {  18  long lasting = System.currentTimeMillis();  19  try {  20   SAXParserFactory sf = SAXParserFactory.newInstance();  21   SAXParser sp = sf.newSAXParser();  22   Mynew My23   sp.parse(new InputSource("data_10k.), reader);  24  } catch (Exception e) {  25   e.printStackTrace();  26   }  27  28  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)  29   + "毫秒");  30 }  31  32 public void characters(char ch[], int start, int length)  33  throws SAXException {  34  String tag = (String) tags.peek();  35  if (tag.equals("NO")) {  36   System.out.print("车牌号码:" + new String(ch, start, length));  37   }  38  if (tag.equals("ADDR")) {  39   System.out.println("地址:" + new String(ch, start, length));  40   }  41 }  42  43 public void startElement(String uri, String localName, String qName,  44   Attributes attrs) {  45   tags.push(qName);  46 }  47 }