`
dingqijie
  • 浏览: 102231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java xml 方法对比

阅读更多
<?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性能对比分析Demo

    本文将深入探讨几种不同的XML解析方法,并通过实际的“Java解析XML性能对比分析Demo”来展示它们的性能差异。我们将讨论DOM、SAX、JDOM、DOM4J和JAXB这五种解析器,以及它们各自的特点和适用场景。 1. DOM(文档...

    Java 解析 xml 3种方法

    Java XML解析是开发中常见的任务,它涉及到将XML文档转换为程序可以操作的数据结构。XML(eXtensible Markup Language)是一种标记语言,常用于数据交换、配置存储等场景。在Java中,有多种方式来解析XML,主要包括...

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    java_xml_api,java操作XML文档

    Java XML API是Java平台提供的一套用于处理XML文档的接口和类,它使得开发者能够方便地在Java程序中创建、解析、修改XML文档。本文将深入探讨Java XML API中的核心组件,包括SAX(Simple API for XML)、DOM...

    Java解析XML的四种方法比较

    Java解析XML时,主要有四种方法:DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)以及JAXB(Java Architecture for XML Binding)。这四种方法各有特点,适用于不同的场景...

    Java解析XML的jar包+四种解析方法

    java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    Java读写xml,word,xml文件(防乱码)

    TXT文件的读写相对来说比较简单,可以直接采用上面提到的XML文件的读写方法。 #### 七、总结 本文介绍了如何使用Java进行XML、Word以及TXT文件的读写操作,并确保在读写过程中不会出现乱码现象。通过正确指定文件的...

    Java中四种XML解析技术分析对比

    在Java编程语言中,XML(eXtensible Markup Language)是一种重要的数据交换格式,用于存储和传输结构化数据。为了处理XML文档,Java提供了多种解析技术。本篇文章将深入探讨四种主要的XML解析技术——DOM、SAX、...

    java and xml 3rd edition

    8. **JAXB2和XMLBeans**:对比分析JAXB2和XMLBeans,两者都是Java与XML之间数据绑定的解决方案,各有优缺点。 9. **JAXB和RESTful Web Services**:讨论JAXB在构建RESTful Web服务中的应用,包括使用JAX-RS(Java ...

    XML.rar_XML SAX_XML java_dom xml_java xml_java解析xml

    总结来说,XML在Java中的解析涉及DOM和SAX两种主要方法,每种都有其适用场景和优缺点。了解它们的工作原理和使用方法,可以帮助我们更高效地处理XML数据。通过实践和比较,我们可以更好地选择和利用这些工具,提高...

    Java XML xml自学手册

    同时,也会对比Java与DotNet中处理XML的不同方法,使读者了解跨平台的XML处理。 接下来,"递归获得XML树.rar"可能涉及解析XML文档的方法。在Java中,我们通常使用DOM(Document Object Model)和SAX(Simple API ...

    java xml文件解析

    W3C发布的针对DOM方式的一组Java接口,规范了以DOM方式操作XML文档的方法。W3C DOM是业界认可的DOM规范,并且已经内置于JDK中,编写Java程序时不需要引入库就可以使用这个API。W3C DOM API所在的包是`org.w3c.dom`。...

    JAVA解析XML示例

    本示例将介绍三种常见的Java XML解析方法:DOM、SAX和DOM4J,并通过比较它们的性能特点来帮助初学者理解不同解析器的适用场景。 1. DOM(Document Object Model)解析: DOM是W3C推荐的一种标准API,它将整个XML...

    java操作XML的四种方法的比较(有代码)

    在Java中,操作XML的常用方法有四种,它们分别是DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)以及JAXB(Java Architecture for XML Binding)。每种方法都有其特点和...

    JAVA对象与XML互转

    - **生成XML**:通过`JAXBContext`实例,你可以获取`Marshaller`对象,然后调用`marshal()`方法将Java对象转换为XML字符串或文件。 2. **DOM解析**:Document Object Model(DOM)是另一种处理XML的方式。通过构建...

    java中四种操作xml方式的比较

    ### Java中四种操作XML方式的比较 在Java中,处理XML文档有多种方式,每种方式都有其独特的特性和应用场景。下面将详细对比DOM、SAX、JDOM和DOM4J四种主流的XML处理技术。 #### 1\. DOM (Document Object Model) ...

    使用Java读取XML配置文件

    目前使用 SAX 比较多,与 DOM 主要区别是 SAX 是一行一行读取 XML 文件进行分析,适合比较大文件,DOM 是一次性读入内存,显然不能对付大文件。 下面是一个使用 SAX 解析 XML 配置文件的 Java 程序: ```java ...

    java jdom解析xml

    Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...

    Java 解析 Xml

    本文将详细介绍Java中解析XML的几种主要方法,并进行对比,以帮助开发者选择最适合自己的解决方案。 1. DOM(Document Object Model)解析器: DOM解析器将整个XML文档加载到内存中,构建一个树形结构的DOM节点模型...

    Java_XML入门(文档+四种操作XML方式程序)

    在“Java_XML入门手册”中,你将找到关于这些方法的详细介绍,包括如何创建解析器、如何读写XML文件、如何处理XML节点以及如何比较不同方法的优缺点。通过学习这个手册,你可以快速掌握Java操作XML的基础,为后续的...

Global site tag (gtag.js) - Google Analytics