<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<NO>A1234</NO>
<ADDR>河南省郑州市</ADDR>
</VALUE>
<VALUE>
<NO>B1234</NO>
<ADDR>河南省郑州市二七区</ADDR>
</VALUE>
</RESULT>
第一种 DOM 实现方法:import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class MyXMLReader2DOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("VALUE");
for (int i = 0; i < nl.getLength(); i++) {
System.out.print("车牌号码:"+ doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
System.out.println("车主地址:"+ doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
第二种,DOM4J实现方法:
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class MyXMLReader2DOM4J {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
Element root = doc.getRootElement();
Element foo;
for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
foo = (Element) i.next();
System.out.print("车牌号码:" + foo.elementText("NO"));
System.out.println("车主地址:" + foo.elementText("ADDR"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
第三种 JDOM实现方法:
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
public class MyXMLReader2JDOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("data_10k.xml"));
Element foo = doc.getRootElement();
List allChildren = foo.getChildren();
for (int i = 0; i < allChildren.size(); i++) {
System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText());
System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
第四种SAX实现方法:
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyXMLReader2SAX extends DefaultHandler {
java.util.Stack tags = new java.util.Stack();
public MyXMLReader2SAX() {
super();
}
public static void main(String args[]) {
long lasting = System.currentTimeMillis();
try {
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
MyXMLReader2SAX reader = new MyXMLReader2SAX();
sp.parse(new InputSource("data_10k.xml"), reader);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)
+ "毫秒");
}
public void characters(char ch[], int start, int length)
throws SAXException {
String tag = (String) tags.peek();
if (tag.equals("NO")) {
System.out.print("车牌号码:" + new String(ch, start, length));
}
if (tag.equals("ADDR")) {
System.out.println("地址:" + new String(ch, start, length));
}
}
public void startElement(String uri, String localName, String qName,
Attributes attrs) {
tags.push(qName);
}
}
分享到:
相关推荐
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
Java解析XML的四种方法比较.doc
Java 解析XML性能分析Demo。包含了DOM解析,SAX解析, JDOM解析,DOM4J解析,JAXB解析例子。
java xml文件DOM、SAX、DOM4j四种解析方式与性能对比。
目前使用 SAX 比较多,与 DOM 主要区别是 SAX 是一行一行读取 XML 文件进行分析,适合比较大文件,DOM 是一次性读入内存,显然不能对付大文件。 下面是一个使用 SAX 解析 XML 配置文件的 Java 程序: ```java ...
java中四种操作xml方式的比较 dom jdom等
java操作XML的四种方法的比较(有代码)
JAVA解析XML文件四种方式比较,欢迎下载使用!
Java 读取 XML 文件内容的四种方法 Java 语言提供了多种方法来读取 XML 文件内容,以下是四种常见的方法: 1. DOM(Document Object Model) DOM 是一种基于树的模型,它将 XML 文档表示为一个层次结构的节点或...
Java对于读取xml文件的方法有很多种,但是那种效率高,性能好,文件中对于当前流行的读取XML的方法有详细的介绍和性能、时间的对比。
Java解析Xml的几种方法,且带比较 .
这是用三中不同的方法读取XML文件的信息,做了一些小的比较,主要体现在三种解析技术的性能上。。。适合于初学者 里面卖弄包含一个dom4j解析的JAR包,将该JAR文件添加进来即可.
JAVA解析XML的四种方法比较.doc
按照XML格式保存数据(我们可以用EXCEL打开个表格文件,另存为...一定要注意,并且大小写敏感,但是存起来比较方法,能够满足基于页面数据的按照SHEET多次导出,做了个简单的页面表格导成XML TABLE的例子,可以看看效果
在这篇文章中,我们将对 Java 中四种主流的 XML 解析技术进行比较和分析。 一、 DOM(JAXP Crimson 解析器) DOM 是一种基于树或基于对象的 XML 解析技术,它是用与平台和语言无关的方式表示 XML 文档的官方 W3C ...
NULL 博文链接:https://myaimit.iteye.com/blog/729908
Java读写XML,功能比较简单,主要是用于个人学习。
XML入门 java四种操作XML方式简介和比较
标准Dom、JDom(为Java提供的解析技术)、Dom4j(优化之后的解析技术)、SAX(大型xml解析的技术) 树模型:DOM、JDOM、Dom4j; 特点:算法丰富、操作比较简单;一次性读取所有内容到内存(不适于大型xml文件解析...