java读取 xml文件
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文件的更多相关文章
- java 读取XML文件作为配置文件
首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- JAVA读取XML文件数据
XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...
- java读取XML文件,及封装XML字符串
package com.yyl.text; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.T ...
- 通过Java读取xml文件内容
读取XML中的内容就需要对XML进行解析,目前对XML进行解析的方法分为四种: 下面解析的方法是DOM4J,需要下载jar包dom4j:https://dom4j.github.io/ package ...
- java读取xml文件并转换成对象,并进行修改
1.首先要写工具类,处理读取和写入xml文件使用的工具.XMLUtil.javaimport java.io.FileInputStream; import java.io.FileWriter; i ...
- 精----Java读取xml文件的四种方法
xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VA ...
随机推荐
- 后台返回数据为map集合,前端js处理方法
当后台返回的数据不是json而是map集合的时候,前端js中处理就将其看作是一个数组,例如后台返回的代码入下: Map<String, String> result = new HashM ...
- k8s-prometheus 数据采集(node redis kubelet等)
apiVersion: v1 kind: ConfigMap metadata: name: prometheus-config namespace: kube-ops data: prometheu ...
- MyBatis 源码篇-日志模块1
在 Java 开发中常用的日志框架有 Log4j.Log4j2.Apache Common Log.java.util.logging.slf4j 等,这些日志框架对外提供的接口各不相同.本章详细描述 ...
- connect() failed (111: Connection refused) while connecting to upstream的解决
遇到这种情况, 首先 1.检查php-fpm是否启动---------如果没启动->启动, 2.用命令 netstat -ant | grep 9000 查看php-fpm进程,如果没启动-&g ...
- 编写Dockerfile自定义镜像
要求 编写一个Dockerfile自定义centos镜像,要求在容器内部可以使用vim和ifconfig命令,并且登入落脚点为/usr/local 编写Dockerfile FROM centos M ...
- Spark面试知识点-SparkSQL(1)
0.介绍: (1)Spark SQL的前身是Shark,即Hive on Spark, 1.SparkSQL特点: (1)支持多种数据源:Hive,RDD,Parquet,JSON,JDBC等. (2 ...
- LeetCode:627.交换工资
题目链接:https://leetcode-cn.com/problems/swap-salary/ 题目 给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值.交换所有的 ...
- php压缩图片
<?php header('content-type:text/html;charset=utf8'); set_time_limit(0); $imgs=scandir('./Public/u ...
- Image Processing and Analysis_8_Edge Detection:Scale-space and edge detection using anisotropic diffusion——1990
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- 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头的验证. 就是 ...