java读取xml文件的四种方法

Xml代码

 1 <?xml version="1.0" encoding="GB2312"?>
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.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 }

java读取 xml文件的更多相关文章

  1. java 读取XML文件作为配置文件

    首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...

  2. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

  3. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  4. JAVA读取XML文件并解析获取元素、属性值、子元素信息

    JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取  InputStream   DocumentBuilderFactory   Element     Node 前言 最 ...

  5. JAVA读取XML文件数据

    XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...

  6. java读取XML文件,及封装XML字符串

    package com.yyl.text; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.T ...

  7. 通过Java读取xml文件内容

    读取XML中的内容就需要对XML进行解析,目前对XML进行解析的方法分为四种: 下面解析的方法是DOM4J,需要下载jar包dom4j:https://dom4j.github.io/ package ...

  8. java读取xml文件并转换成对象,并进行修改

    1.首先要写工具类,处理读取和写入xml文件使用的工具.XMLUtil.javaimport java.io.FileInputStream; import java.io.FileWriter; i ...

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

    xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VA ...

随机推荐

  1. Git初始化配置以及配置github

    1,配置用户名和邮箱(这里是我github中配置的用户名和邮箱),执行下面命令后,在C:\Users\yaosq盘下会出现一个全局文件.gitconfig. git config --global u ...

  2. .net操作数据库

    1. 自动生化曾的一些查询 可以自定义查询语句 2.自定义查询过程调用 USE [mydb] GO /****** Object: StoredProcedure [dbo].[procLogin] ...

  3. Java:关于子类继承父类接口时,由于权限没有设定的更广,出错的一个小tip

    今天在写笔记的时候,写的地方出现了小叉叉错号. 发现问题: 这里出错了!原因是因为在子类覆写父类的方法的时候,权限不能开的比父类更低! 加了public后,纠错成功. 由于接口类型下的方法默认都是pu ...

  4. 尝试 javascript 一对多 双向绑定器

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  5. Windows编程 Windows程序的生与死(下)

    再谈程序之“死” 记得在第二回中我对程序的“死”只是一句话带过,因为我还没有铺垫好,好了现在我们可以详细的分析一下这个过程了. 这还要从while消息循环说起,还记得GetMessage函数吗?它是一 ...

  6. javascript字符串机油

    1.创建字符串和数组的方法 1.1创建字符串的方法 a.直接数量:var str=“: b.字符串对象创建:新字符串(“): 1.2创建阵列的方法 a.var.arr=要素…. b.var arr=n ...

  7. 安卓开发之利用XmlPullParser解析XML文件

    package com.lidaochen.phonecall; import android.support.v7.app.AppCompatActivity; import android.os. ...

  8. 8.JSP与JavaBean

    1.<jsp:useBean> <html> <head> <title>jsp:useBean 标签的使用</title> </he ...

  9. 【2】Git仓库

    一.获取 Git 仓库 初始化仓库 ##基于当前目录初始化仓库 $ git init ##指定demo目录初始化仓库 $ git init demo 克隆现有仓库 ##克隆现有的仓库,默认目录名:li ...

  10. 【异常】azkaban.executor.ExecutorManagerException: No active executors found

    1 azkaban启动异常 没有找到活动的executors,需在MySQL数据库里设置端口为12321的executors表的active为1   update azkaban.executors ...