Xml代码
1 <?xml version="1.0" encoding="GB2312"?>
2
3
4 A1234
5 河南省郑州市
6
7
8 B1234
9 河南省郑州市二七区
10
11
第一种 DOM 实现方法:
1 import java.io.File;
2
3 import javax.xml.parsers.DocumentBuilder;
4 import javax.xml.parsers.DocumentBuilderFactory;
5
6 import org.w3c.dom.Document;
7 import org.w3c.dom.NodeList;
8
9 public class MyXMLReader2DOM {
10 public static void main(String arge[]) {
11
12 long lasting = System.currentTimeMillis();
13
14 try {
15 File f = new File("data_10k.xml");
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 MyXMLReader2DOM4J {
7 public static void main(String arge[]) {
8 long lasting = System.currentTimeMillis();
9 try {
10 File f = new File("data_10k.xml");
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 MyXMLReader2JDOM {
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.xml"));
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.xml.parsers.SAXParser;
2 import javax.xml.parsers.SAXParserFactory;
3
4 import org.xml.sax.Attributes;
5 import org.xml.sax.InputSource;
6 import org.xml.sax.SAXException;
7 import org.xml.sax.helpers.DefaultHandler;
8
9 public class MyXMLReader2SAX extends DefaultHandler {
10
11 java.util.Stack tags = new java.util.Stack();
12
13 public MyXMLReader2SAX() {
14 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 MyXMLReader2SAX reader = new MyXMLReader2SAX();
23 sp.parse(new InputSource("data_10k.xml"), 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 }