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 实现方法 import java.io.File; import javax.xml.parsers.D
 

 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文件的四种方式的更多相关文章

  1. 精----Java读取xml文件的四种方法

    xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VA ...

  2. java读取xml文件的四种方法

    Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> ...

  3. Java 读取 .properties 文件的几种方式

    Java 读取 .properties 配置文件的几种方式   Java 开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中.然而 XML 配置文件需要通过 ...

  4. 解析xml文件的四种方式

    什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没 ...

  5. 【开发笔记】- Java读取properties文件的五种方式

    原文地址:https://www.cnblogs.com/hafiz/p/5876243.html 一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供j ...

  6. 读取XML文件的几种方式的效率分析

    第一种:使用XmlReader来读取. Stopwatch sw = Stopwatch.StartNew(); List<Dictionary<string, string>> ...

  7. JavaWeb读取资源文件的四种方式

    1. ServletContext 1. 调用getResourcesAsStream方法获取输入流, 相对于webroot, 不用加/2. 读取任何类型的文件3. *只能在web环境下使用 Inpu ...

  8. java读取配置文件常用的四种方式

    配置文件 放置在src下面 obj.properties className=com.store.order.dao.impl.OrderDaoImpl 方式一 @Test public void t ...

  9. java读取excel文件的两种方式

    方式一: 借用 package com.ij34.util; /** * @author Admin * @date 创建时间:2017年8月29日 下午2:07:59 * @version 1.0 ...

随机推荐

  1. 学习了LINUX下用C语言遍历文件夹,一些心得

    struct dirent中的几个成员: d_type:4表示为目录,8表示为文件 d_reclen:16表示子目录或文件,24表示非子目录 d_name:目录或文件的名称 具体代码如下,仅供参考 # ...

  2. 树莓派的.bashrc和.bash_aliases文件

    在你的home文件夹中,你能够找到一个包括用户配置的隐藏文件.bashrc. 你能够依据自己的须要改动这个文件. 文件里为你提供了一些实用的调整设置.默认情况下当中一些设置是被凝视掉的. 比如,一些l ...

  3. struts2 一个简洁的struts.xml

    struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUB ...

  4. 圆角和圆形ImageView

    ※效果 ※代码 /** * 转换图片成圆形 * * @param bitmap * 传入Bitmap对象 * @return */ public Bitmap toRoundBitmap(Bitmap ...

  5. Swift - 使用atlas图集实现动画效果(SpriteKit游戏开发)

    我们通常继承SKSpriteNode来实现游戏中的元素,除了可以使用图片作为纹理皮肤外.我们还可以使用动画纹理集来实现动画播放. 动画纹理集的制作也很简单,首先要有一套动画序列图,然后把它们放到一个文 ...

  6. python开发与实战content

    课时10_字典和集合 课时11 练习:列表运算.doc 课时12_讨论答疑:日志.引用.单例模式等 课时13_函数式编程 课时14 练习:编程实现若干函数.doc 课时15_练习讲解:编写函数 课时1 ...

  7. 基于visual Studio2013解决C语言竞赛题之1094纵横图

        题目 解决代码及点评 /************************************************************************/ /* ...

  8. 【Cocos2d-X游戏实战开发】捕鱼达人之单例对象的设计(二)

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为cocos2d-x-2.1.5)    博主发现前两个系列的学习教程被严重抄袭,在这里呼吁大家请尊重开发者的劳动成果, 转载的时候请务必注 ...

  9. jbpm部署流程定义到MySql报乱码解决方案

    问题起因: 我在使用ant将流程定义和流程相关资源部署到JBPM数据库中的时候,报了下面一个错误. 错误提示,大概是: 11:33:40,781 ERROR JDBCExceptionReporter ...

  10. 【Demo 0005】视图控制器

    本章学习要点:       1.  熟悉MVC模型及模型中(Modal, View, Control)用途:       2.  了解iOS中常见的几种视图控制器及使用场景:       3.  掌握 ...