您所在的位置:开发 > Java > Java中四种操作XML方式的比较(2)

Java中四种操作XML方式的比较(2)

2007-04-05 12:00 佚名 中国IT实验室 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

本文给出了Java中四种操作XML方式的简介、比较和基本使用方法,附有源代码。

AD:

3.四种XML操作方式的基本使用方法

xml文件:

<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<NO>A1234</NO>
<ADDR>四川省XX县XX镇XX路X段XX号</ADDR>
</VALUE>
<VALUE>
<NO>B1234</NO>
   <ADDR>四川省XX市XX乡XX村XX组</ADDR>
</VALUE>
</RESULT>

1)DOM

import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;

public class MyXMLReader{
 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();
}

2)SAX

import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;

public class MyXMLReader extends DefaultHandler {

 java.util.Stack tags = new java.util.Stack();
 public MyXMLReader() {
super();
}

 public static void main(String args[]) {
long lasting = System.currentTimeMillis();
try {
 SAXParserFactory sf = SAXParserFactory.newInstance();
 SAXParser sp = sf.newSAXParser();
 MyXMLReader reader = new MyXMLReader();
 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);}
}

3)JDOM

import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;

public class MyXMLReader {

 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();
}
}

4)DOM4J

import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;

public class MyXMLReader {

 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();
}
)

【文章相关内容】

第一页四种操作XML方式简介和比较

第二页四种XML操作方式的基本使用方法 

【责任编辑:火凤凰 TEL:(010)68476606-8007】

内容导航

网友评论TOP5

查看所有评论(

提交评论

  1. 编程排行榜:图形编程的LOGO语言
  2. 什么是响应式Web设计?

热点专题

更多>>

读书

PHP和MySQL Web开发(原书第3版)
本书将介绍如何创建可交互的Web站点,包括从最简单的订单表单到复杂的安全电子商务站点。而且,读者还将了解如何使用开放源代码

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone