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. 后台返回数据为map集合,前端js处理方法

    当后台返回的数据不是json而是map集合的时候,前端js中处理就将其看作是一个数组,例如后台返回的代码入下: Map<String, String> result = new HashM ...

  2. k8s-prometheus 数据采集(node redis kubelet等)

    apiVersion: v1 kind: ConfigMap metadata: name: prometheus-config namespace: kube-ops data: prometheu ...

  3. MyBatis 源码篇-日志模块1

    在 Java 开发中常用的日志框架有 Log4j.Log4j2.Apache Common Log.java.util.logging.slf4j 等,这些日志框架对外提供的接口各不相同.本章详细描述 ...

  4. connect() failed (111: Connection refused) while connecting to upstream的解决

    遇到这种情况, 首先 1.检查php-fpm是否启动---------如果没启动->启动, 2.用命令 netstat -ant | grep 9000 查看php-fpm进程,如果没启动-&g ...

  5. 编写Dockerfile自定义镜像

    要求 编写一个Dockerfile自定义centos镜像,要求在容器内部可以使用vim和ifconfig命令,并且登入落脚点为/usr/local 编写Dockerfile FROM centos M ...

  6. Spark面试知识点-SparkSQL(1)

    0.介绍: (1)Spark SQL的前身是Shark,即Hive on Spark, 1.SparkSQL特点: (1)支持多种数据源:Hive,RDD,Parquet,JSON,JDBC等. (2 ...

  7. LeetCode:627.交换工资

    题目链接:https://leetcode-cn.com/problems/swap-salary/ 题目 给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值.交换所有的 ...

  8. php压缩图片

    <?php header('content-type:text/html;charset=utf8'); set_time_limit(0); $imgs=scandir('./Public/u ...

  9. Image Processing and Analysis_8_Edge Detection:Scale-space and edge detection using anisotropic diffusion——1990

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  10. springboot Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

    报错如下: 在请求目标中发现无效字符.有效字符在RFC 7230和RFC 3986中定义. 原因是Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证. 就是 ...