`
lc52520
  • 浏览: 369080 次
  • 性别: 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);
 }
}

分享到:
评论

相关推荐

    读取Excel数据生成XML文件

    通过使用`pandas.DataFrame.to_xml()`方法,我们可以将DataFrame的数据转换成XML字符串或直接写入XML文件。 5. XML结构设计:在转换前,需要规划XML的结构,确定哪些Excel列对应于XML元素,哪些是属性,以及数据...

    纯java代码读取apk文件

    使用纯Java代码读取APK文件是一项常见的技术需求,例如为了分析应用的元数据、提取图标或查看权限设置等。下面我们将深入探讨如何在Java环境中处理APK文件。 首先,APK文件本质上是一个ZIP格式的压缩包,因此可以...

    生成xml 文件 后并压缩

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储等领域。本文将详细讲解如何生成XML文件以及如何将XML文件导入到数据库中,并介绍压缩XML文件的相关方法。 一...

    利用Java jdk(dom)解析和写入XML文件

    DOM是处理XML文档的一种模型,它将XML文档转化为一个树形结构,使得开发者可以通过节点操作来读取、修改和创建XML内容。 首先,解析XML文件主要涉及`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom....

    Java+XML日程提醒系统.7z

    Java+XML日程提醒系统是一个基于Java编程语言和XML(eXtensible Markup Language)的实用应用程序,用于创建、管理和提醒用户关于日常任务和事件。这个系统的核心功能可能包括事件的添加、修改、删除,以及设定提醒...

    Java+XML写的RSS阅读器.7z

    这个项目可能使用了其中一种或多种解析XML文档,读取RSS feed中的标题、链接、描述等信息。 3. **RSS规范**:理解RSS的结构和规范是开发RSS阅读器的基础。RSS有多个版本,如RSS 0.91、RSS 1.0、RSS 2.0等,它们定义...

    Flash+xml仿实现3D轮换图片效果,超赞

    在3D轮播项目中,我们需要编写ActionScript代码来读取XML文件,加载图片,以及实现3D旋转动画。 3. **3D旋转算法**:为了实现3D旋转,我们需要运用一些基本的三维图形学知识,如矩阵变换。ActionScript 3 提供了`...

    Java通用解压代码(RAR5,Zip,7Z)

    以上代码示例展示了如何使用Java处理RAR5、Zip和7z文件的基本方法。在实际项目中,你需要根据具体需求对这些代码进行适当的修改和扩展,例如添加错误处理、支持更多的压缩格式或提高性能等。在跨平台方面,由于Java...

    parserXML.7z

    2. **SAX解析器**:Simple API for XML (SAX) 是一种事件驱动的解析器,它逐行读取XML文档,遇到元素、属性等时触发事件。SAX解析器内存效率高,适合处理大文件,但编程模型相对复杂,因为需要实现事件处理器接口。 ...

    xml 转 jsonObject

    压缩包中的`exml`文件可能是XML格式的,要读取并转换它,首先需要将其解压,然后用上述代码处理XML字符串。使用Java的`java.util.zip`包可以实现解压。 ```java import java.io.File; import java.io....

    Java解析apk、ipa图标,包名,应用名称,版本号

    读取该文件并解析XML,可以获取到包名。 ```java String manifestContent = extractFileFromApk("AndroidManifest.xml", apkFile); Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()....

    实例展示使用Java压缩和解压缩7z文件的方法

    在Java编程中,有时我们需要处理文件的压缩与解压缩任务,特别是当涉及到7z这种高效压缩格式时。7z文件格式提供了比常见的ZIP或RAR格式更高的压缩率,但它的Java支持相对较少。本文将通过一个实例展示如何使用7-zip...

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

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

    java解析excel.7z

    在这个"Maven项目解析Excel"中,我们关注的是如何使用Java处理两种不同格式的Excel文件:`.xls`(Excel 97-2003工作簿)和`.xlsx`(Excel 2007及以上版本的OpenXML格式)。以下是关于这个主题的详细知识点: 1. **...

    java文件生成

    在给定的压缩包文件`GenerateXnodes.java`中,我们可以推测这是一个用于生成Java文件的类或方法,可能用于动态创建XML节点相关的Java代码。具体的实现细节取决于该文件的实际内容,但基本的文件生成流程如上所述。 ...

    XML解析器 Xerces.7z

    1. **解析XML文档**:Xerces能够读取XML文件并将其转换为内存中的数据结构,如DOM(Document Object Model)或SAX(Simple API for XML)。DOM将整个XML文档加载到内存中,便于遍历和操作;SAX则采用事件驱动的方式...

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

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

    java源码:文件压缩解压缩包 Commons Compress.rar

    Java 源码:文件压缩解压缩包 Commons Compress 是一个强大的开源库,它提供了对多种文件压缩格式的支持。这个库是由 Apache 软件基金会开发的,是 Java 平台上处理压缩和归档文件的标准工具之一。在 Java 开发中,...

    java解析zip文档,解决解析zip中解析xml和html文档流断的方法.pdf

    一种方法是创建一个自定义的`InputStream`类,例如`XmlInputStream`,它包裹原始的`ZipInputStream`并控制其读取行为。这个自定义流可以在解析XML或HTML文件时保持打开状态,直到解析完成后再关闭。 以下是一种可能...

    Java的PList类库 Blister.7z

    PList是一种用于存储数据结构的文件格式,类似于XML,通常用来保存应用程序的配置、偏好设置或者简单数据。Blister类库允许Java开发者在不依赖Apple的SDK的情况下读取和写入PList文件,使得跨平台开发变得更加便捷。...

Global site tag (gtag.js) - Google Analytics