xml 4种读取方式

原创 2017年01月03日 01:00:10

xml文件:

  Xml代码


  <?xml version="1.0" encoding="GB2312"?>  
  <RESULT> 
  <VALUE> 
  <NO>A1234</NO> 
  <ADDR>河南省郑州市</ADDR> 
  </VALUE> 
  <VALUE> 
  <NO>B1234</NO> 
  <ADDR>河南省郑州市二七区</ADDR> 
  </VALUE> 
  </RESULT>

  第一种 DOM 实现方法:

  Java代码


    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()); 
  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
  + "毫秒"); 
  } 
  } 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  }

  第二种,DOM4J实现方法:

  Java代码


    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")); 
  } 
  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
  + "毫秒"); 
  } 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  }

  第三种 JDOM实现方法:

  Java代码


    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()); 
  } 
  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
  + "毫秒"); 
  } 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  }

  第四种SAX实现方法:

  Java代码

 


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

XMl解析的几种方式

XMl解析的几种方式
  • hoho_12
  • hoho_12
  • 2016年11月01日 17:15
  • 305

四对括号可以有多少种匹配排列方式?

46.搜狐(运算): 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) #include #include #include using namespace st...
  • lihappy999
  • lihappy999
  • 2012年03月26日 17:57
  • 3232

安卓进程间通信的四种方式(含案例)

由于应用程序之间不能共享内存。在不同应用程序之间交互数据(跨进程通讯),在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activi...
  • baidu_34928905
  • baidu_34928905
  • 2017年09月21日 00:26
  • 150

文本的四种编码方式

ANSI:系统预设的标准文字储存格式。ANSI是American National Standards Institute的缩写。它成立于1918年,是一个自愿性的组织,拥有超过1300个会员,包括所...
  • shenwansan_gz
  • shenwansan_gz
  • 2014年11月20日 16:18
  • 352

Android开发之基本控件和详解四种布局方式

转自http://www.cnblogs.com/ludashi/p/4883915. Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动。给控件添加事件也有接口...
  • chenjinlong126
  • chenjinlong126
  • 2016年11月23日 19:50
  • 157

XML解析4种方式

 解析:SAX   //按行加载dom4j //一次加载在平时工作中,难免会遇到把xml作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测...
  • wjp553650958
  • wjp553650958
  • 2009年08月30日 14:11
  • 249

xml解析方式(4种)

1.介绍  1)DOM(JAXP Crimson解析器)  DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开...
  • familyGo
  • familyGo
  • 2011年09月01日 21:25
  • 294

使用4种不同的方式访问数组中的元素

#include void main() { int i; int a[10]={1,2,3,4,5}; int *p=a; //利用数组名加下标的方式访问数组元素 for(i=0;i ...
  • WSF861559021
  • WSF861559021
  • 2011年11月23日 21:14
  • 383

几种输入输出方式的区别

有关上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别          最近在网上看见一些人对STM32的八种方式的解释,说了一大堆,最后看完了 也...
  • a904235765
  • a904235765
  • 2014年12月08日 19:30
  • 686

操作系统,网上课件+IO实现四种方式。

http://cs.hytc.edu.cn/lab/cl/操作系统/zjs060/zjs06001.htm   第1章 操作系...   第2章...
  • shang_mianyou
  • shang_mianyou
  • 2012年08月06日 23:50
  • 636
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xml 4种读取方式
举报原因:
原因补充:

(最多只允许输入30个字)