`
lc52520
  • 浏览: 363458 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java读取XML文件的四种方法【Z】

    博客分类:
  • 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> 

第一种 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 ,properties,txt

    NULL 博文链接:https://z-gxjs.iteye.com/blog/1846423

    读取Excel数据生成XML文件

    读取Excel数据生成XML文件 包括各种说明书 还要详细使用说明 http://zjava.org.ru/

    DWR.xml配置文件说明书(含源码)

    DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    Android国际化文本资源文件处理

    1,读取项目中的所有strings.xml文件并导出为excel得到excel1。 2,可以将同样结构的excel2中的内容同步到excel1。 3,将所有excel1中的内容以自行配置(StringsToExcel.java)的文件夹(如"values-ko-rKR", "values-ja...

    dom4j-1.6.1.7z

    dom4j-1.6.1.zip完整资源(免费)Dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术...

    C#影院售票系统读取XML,动态生成票

    次系统用vs2005开发,主要是动态生成票,读取XML像treeview加载,此系统有学生票,普通票,赠票,相应票可以计算折扣等。供大家参考学习,这是本人作品,如有缺点,请见谅。

    java8源码-WordsCount:Java实现在大容量文件中(大于1G)查询单词出现频率的功能

    java8 源码 WordsCount 本项目为一个基于Maven 3.3.9 的mvn工程 实现功能 根据一个英文文档小文件生成大文件; 查询大文件中出现的不同单词; 统计出这些单词出现的次数; 按首字母A-Z顺序输出单词和对应出现次数。 ...

    xalanjava源码-marc:用于Java的MARC书目数据处理库

    2709/Z39.2 MARC(USMARC、MARC 21、MARC XML) MarcXchange (ISO 25577:2013) UNIMARC MAB(MAB2、MAB XML) MARC 方言(Aleph Sequential、Pica、SISIS 格式) 这个库的动机是将书目数据传输为基于 XML 或 JSON 的...

    Excel POI读取封装(文件+示范代码)

    Excel POI读取封装(文件+示范代码) package org.excel.service; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java....

    自己平时做的android相关的总结

    layout文件夹和raw文件下面的文件读取 Matrix方法中的set方法和post方法 android 中调用drawBitmap时理解dip(屏幕密度)和px(像素)的区别 SQLiteDatabase 的setTransactionSuccessful作用 终于弄明白 paddingleft...

    ph-sbdh:用于读写UN CEFACT标准业务文档标头文档的Java库

    它支持在Java域对象和XML表示形式之间轻松读取和写入SBD和SBDH。 它已获得Apache 2.0许可。 Maven用法 将以下内容添加到pom.xml中以使用此工件,将xyz替换为有效版本: &lt; groupId&gt;com.helger&lt;/ groupId&gt; ...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    5. java中如何把一个目录下的文件移到另一个指定的目录? 6. 制作表格线? 7. jsp如判别一个字符在A到Z之间? 8. 得到一浮点数小数点后4位,如何写以函数截取为两位 9. 整型转字符? 10. 显示数据库的记录,点击哪个...

    Java学习笔记-个人整理的

    {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section.8.5} {8.5.1}sleep与wait的差异}{124}{subsection.8.5.1} {8.6}IO阻塞}{126}{section....

    Flink-WikipediaEditCount:Apache Flink程序,用于在Wikipedia页面历史xml转储中计算用户的编辑计数

    任务是读取Wikipedia XML转储( **-pages-meta-history.xml ),并输出名称空间0中所有页面的作者姓名和编辑计数元组。完整的任务可以在src/doc/Wikipedia author count using Apache Flink.pdf 。 要求 Java 1.8 ...

    精通JavaScript

    • 12.13.htm 读取HTML元素内容 • 12.14.htm 修改HTML元素内容 • 12.15.htm innerText、outerText、outerHTML属性 • 12.16.htm document.all[] 第13章(\第13章) • 13.1....

Global site tag (gtag.js) - Google Analytics