精----Java读取xml文件的四种方法

xml文件:

  Xml代码

  <?xml version="1.0" encoding="GB2312"?>
  <RESULT>
  <VALUE>
  <NO>A1234</NO>
  <ADDR>河南省郑州市</ADDR>
  </VALUE>
  <VALUE>
  <NO>B1234</NO>
  <ADDR>河南省郑州市二七区</ADDR>
  </VALUE>
  </RESULT>

  第一种 DOM 实现方法:

  Java代码

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

  第二种,DOM4J实现方法:

  Java代码

 

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

  第三种 JDOM实现方法:

  Java代码

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

  第四种SAX实现方法:

  Java代码

 

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

时间: 2024-08-07 17:02:15

精----Java读取xml文件的四种方法的相关文章

Java读取xml文件的四种方法,及其取得配置文件的方法

xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>A1234</NO> <ADDR>河南省郑州市</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>河南省郑州市二七区</ADDR&g

Java读取xml文件的四种方法

xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?>   <RESULT>  <VALUE>  <NO>A1234</NO>  <ADDR>河南省郑州市</ADDR>  </VALUE>  <VALUE>  <NO>B1234</NO>  <ADDR>河南省郑州市二七区&l

java读取XML文件的四种方式

java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>A1234</NO> <ADDR>河南省郑州市</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>河南省郑州市二七区&

Java解析XML文件的四种方法

[摘要] 可扩展标志语言(XML)在实现信息标准化.信息的交流与共享上有其独特的技术优势,因此受到了广泛的重视.本文先简单的介绍了XML基本知识,然后从XML应用入手总结了四种现今最常见的XML的解析方法,介绍了这四种方法的特点,其中包括优点与不足之处.最后给出了一个简单的案例来对这四种解析进行代码介绍. [关键字] XML文件,DOM,SAX,JDOM,DOM4J [引言] XML即可扩展标记语言(EXtensible Markup Language),是标准通用标记语言的子集,是一种用于标记

java读取xml文件的三种方法

xml既简单又标准,值得拥有和学习,好多地方都用的到.假设有这么一个book.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Copyright w3school.com.cn --> <!-- W3School.com.cn bookstore example --> -<bookstore> -<book category="childre

PHP读写XML文件的四种方法

PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介绍. 介绍之前首先对本文例子使用的数据和文件进行说明.本文写XML文件的例子都是从MySQL中读取数据然后 写入到XML文件中,读XML文件的例子都是从XML文件中读取数据后组装成数组的格式,数组中每个元素对应数 据库中的一条记录. MySQL中的数据: XML文件: 1 2 3 4 5 6 7 8

java读取properties文件的几种方法

一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取 Java代码   Properties p=new Properties(); //p需要InputStream对象进行读取文件,而获取InputStream有多种方法: //1.通过绝对路径:InputStream is=new FileInputStream(filePath); //2.通过Class.getResourceAsStream(path)

Java中Xml解析(四种方法)

1.DOM,Document Object Model,基于DOM的XML分析器将XML文档转换成一个对象模型的集合(DOC树),通过对此模型操作实现对XML文档数据的操作,可以在任何时候对XML文档的任何一部分数据进行访问. DOC强制使用树模型来访问XML文档中信息 很灵活,当XML文档较大时对内存需求比较高,而且对结构复杂的DOC树的遍历也很耗时,对机器要求比较高. // step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器) DocumentBuilderFactory

java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回:Map * @param file * @return * @throws IOException */ public static Map<String, String> readTxt(String file) throws IOException { Map<String, Strin