- 浏览: 260147 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
MR3CHEN:
gaojiehigh 写道正在找这样的方法,我不过发现了一个问 ...
Java删除文件夹以及文件夹下的子目录与文件 -
gaojiehigh:
正在找这样的方法,我不过发现了一个问题,嘿嘿
[img][/i ...
Java删除文件夹以及文件夹下的子目录与文件 -
mimang2007110:
这个方法很实用,刚才适用了一下,挺好的,多谢
Java删除文件夹以及文件夹下的子目录与文件 -
sblig:
int icount = toKenizer.countT ...
Java拆分字符串返回数组 -
haiyangyiba:
文件夹中有中文文件不行,
Java解压缩ZIP文件同时包含Jar包解决ZIP包中含有中文名称信息的文件
package com.yc.ycportal.ge.util;
import java.io.FileInputStream;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
* @author
* 本类的作用是对properties和xml文件的解析,重点在于包括xml文件的两种解析方式
* 现在有三种用于Java的流行xml解析技术,文档对象模型(Document Object Model,DOM),基于W3C的
* 成熟标准,2、用于XML的简单API(Simple API for XML),第一个被广泛采用的用Java编写的XML API
* 是一个事实上的标准,3、用于XML的数据流API(Straming API for XML,StAX),JSR-173中采用
* 的一个新解析模型
*/
public class ParseFile {
public static ParseFile getInterface(){
return new ParseFile();
}
/**解析Properties文件获取数据信息*/
/**
*properties的文件格式为
*username=sa
*userpass=123以第一等号为标准,后面为它的值
*/
public List getPropertes(String fileName){
List list = null;
ResourceBundle rb = ResourceBundle.getBundle(fileName);
list.add(rb.getString("username"));
list.add(rb.getString("userpass"));
return list;
}
/**用SAX方式解析XML文件获取数据信息,创建一个解析XML文件的内部类解析器*/
class ParseXML extends DefaultHandler{
//所有的方法是子类重写父类的方法
String currentName = null;
StringBuffer currentValue = new StringBuffer();
Properties properties = null;
//接收元素开始的通知。
//默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在每个元素的开始处采取特定的操作
public void startElement(String uri,String localName,String qName,Attributes attributes)throws SAXException{
this.currentValue.delete(0, this.currentValue.length());
this.currentName = qName;
}
//接收元素中字符数据的通知
//默认情况下,不执行任何操作。应用程序编写者可以重写此方法,以便对每块字符数据采取特定的措施
//如将该数据添加到节点或缓冲区,或者将该数据打印到文件。
public void characters(char[] ch,int start,int length)throws SAXException{
this.currentValue.append(ch,start,length);
}
//接收元素结束的通知
//默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在每个元素的结束处采取特定的操作
//如,结束树节点或将输出写入文件。
public void endElement(String uri,String localName,String qName)throws SAXException{
this.properties.put(qName.toLowerCase(), this.currentValue.toString().trim());
}
//返回存储XML信息数据的properties
public Properties getProperties(){
return this.properties;
}
}
public List getSAXXml(String fileName)throws Exception{
List list = null;
ParseXML parsexml = new ParseXML();
Properties properties = null;
SAXParserFactory factory = SAXParserFactory.newInstance();
//如果由此代码生成的解析器将提供对 XML 名称空间的支持,则为 true;否则为 false。
factory.setNamespaceAware(false);
//指定由此代码生成的解析器将验证被解析的文档。默认情况下,其值设置为 false
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
//使用指定的DefaultHandler将指定文件的内容解析为 XML。
parser.parse(fileName, parsexml);
properties = parsexml.getProperties();
Enumeration em = properties.keys();
while(em.hasMoreElements()){
list.add(properties.get(em.nextElement().toString()));
}
return list;
}
/**用Dom方式解析XML文件获取数据信息,比较容易理解和掌握的一种方式very good*/
public List getDOMXml(String fileName)throws Exception{
List list = null;
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new FileInputStream(fileName));
//document.getRootElement()获取根节点返回一个Element
List listchild = document.getRootElement().getChildren("table");
for(int i=0;i<listchild.size();i++){
Element e = (Element)listchild.get(i);
String tableName = e.getChild("tablename").getText();
List nextchild = e.getChild("fields").getChildren("field");
list.add(tableName);
for(int j=0;j<nextchild.size();j++){
Element child = (Element)nextchild.get(j);
list.add(child.getAttributeValue("name"));
}
}
//返回的List的结构是以表名为0个索引位置后面依次为表的字段名称,附带XML文件描述
return list;
}
}
<?xml version="1.0" encoding="gb2312" ?>
<tables>
<table>
<tablename>dic_rate_zhwd</tablename>
<fields>
<field name="organ_id" type="string"/>
<field name="business_id" type="string"/>
<field name="business_name" type="string"/>
<field name="rate" type="double"/>
</fields>
</table>
</tables>
import java.io.FileInputStream;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
* @author
* 本类的作用是对properties和xml文件的解析,重点在于包括xml文件的两种解析方式
* 现在有三种用于Java的流行xml解析技术,文档对象模型(Document Object Model,DOM),基于W3C的
* 成熟标准,2、用于XML的简单API(Simple API for XML),第一个被广泛采用的用Java编写的XML API
* 是一个事实上的标准,3、用于XML的数据流API(Straming API for XML,StAX),JSR-173中采用
* 的一个新解析模型
*/
public class ParseFile {
public static ParseFile getInterface(){
return new ParseFile();
}
/**解析Properties文件获取数据信息*/
/**
*properties的文件格式为
*username=sa
*userpass=123以第一等号为标准,后面为它的值
*/
public List getPropertes(String fileName){
List list = null;
ResourceBundle rb = ResourceBundle.getBundle(fileName);
list.add(rb.getString("username"));
list.add(rb.getString("userpass"));
return list;
}
/**用SAX方式解析XML文件获取数据信息,创建一个解析XML文件的内部类解析器*/
class ParseXML extends DefaultHandler{
//所有的方法是子类重写父类的方法
String currentName = null;
StringBuffer currentValue = new StringBuffer();
Properties properties = null;
//接收元素开始的通知。
//默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在每个元素的开始处采取特定的操作
public void startElement(String uri,String localName,String qName,Attributes attributes)throws SAXException{
this.currentValue.delete(0, this.currentValue.length());
this.currentName = qName;
}
//接收元素中字符数据的通知
//默认情况下,不执行任何操作。应用程序编写者可以重写此方法,以便对每块字符数据采取特定的措施
//如将该数据添加到节点或缓冲区,或者将该数据打印到文件。
public void characters(char[] ch,int start,int length)throws SAXException{
this.currentValue.append(ch,start,length);
}
//接收元素结束的通知
//默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在每个元素的结束处采取特定的操作
//如,结束树节点或将输出写入文件。
public void endElement(String uri,String localName,String qName)throws SAXException{
this.properties.put(qName.toLowerCase(), this.currentValue.toString().trim());
}
//返回存储XML信息数据的properties
public Properties getProperties(){
return this.properties;
}
}
public List getSAXXml(String fileName)throws Exception{
List list = null;
ParseXML parsexml = new ParseXML();
Properties properties = null;
SAXParserFactory factory = SAXParserFactory.newInstance();
//如果由此代码生成的解析器将提供对 XML 名称空间的支持,则为 true;否则为 false。
factory.setNamespaceAware(false);
//指定由此代码生成的解析器将验证被解析的文档。默认情况下,其值设置为 false
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
//使用指定的DefaultHandler将指定文件的内容解析为 XML。
parser.parse(fileName, parsexml);
properties = parsexml.getProperties();
Enumeration em = properties.keys();
while(em.hasMoreElements()){
list.add(properties.get(em.nextElement().toString()));
}
return list;
}
/**用Dom方式解析XML文件获取数据信息,比较容易理解和掌握的一种方式very good*/
public List getDOMXml(String fileName)throws Exception{
List list = null;
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new FileInputStream(fileName));
//document.getRootElement()获取根节点返回一个Element
List listchild = document.getRootElement().getChildren("table");
for(int i=0;i<listchild.size();i++){
Element e = (Element)listchild.get(i);
String tableName = e.getChild("tablename").getText();
List nextchild = e.getChild("fields").getChildren("field");
list.add(tableName);
for(int j=0;j<nextchild.size();j++){
Element child = (Element)nextchild.get(j);
list.add(child.getAttributeValue("name"));
}
}
//返回的List的结构是以表名为0个索引位置后面依次为表的字段名称,附带XML文件描述
return list;
}
}
<?xml version="1.0" encoding="gb2312" ?>
<tables>
<table>
<tablename>dic_rate_zhwd</tablename>
<fields>
<field name="organ_id" type="string"/>
<field name="business_id" type="string"/>
<field name="business_name" type="string"/>
<field name="rate" type="double"/>
</fields>
</table>
</tables>
发表评论
-
java输出文件
2010-12-01 16:51 1358try { File file = new Fil ... -
Java字符串将不是字符数字的字符转换为十六进制字符
2010-07-12 10:28 1326char data[] = "asdfasdf中国1 ... -
Java解压ZIP文件同时解决压缩文件中含有中文名文件乱码的问题
2010-04-22 13:12 5347在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使 ... -
Java解析XML格式字符串返回Document类型对象
2008-05-23 14:46 9013package com.yc.util; import ja ... -
Java进行WebService通讯
2008-05-19 15:10 2170package com.yc.ycportal.cqkf.se ... -
Java实现MD5算法加密
2008-05-16 09:17 1228/** * MD5 算法的Java Bean */ pac ... -
Java手工打Jar包
2008-05-10 11:28 1880用法:jar {ctxu}[vfm0Mi] [jar-文件] ... -
Java解压缩ZIP文件同时包含Jar包解决ZIP包中含有中文名称信息的文件
2008-05-07 13:42 3319我们知道压缩文件中有第一个文件夹为原始文件夹:例如我们对一个目 ... -
Java上传文件实例
2008-05-05 10:08 4005package com.yc.eap.util; impor ... -
Servlet中文API文档
2008-04-26 15:47 2237基本类和接口 一、javax.servlet.Servlet ... -
ServletConfig和ServletConfig参数访问
2008-04-26 14:20 1355HttpServletRequest,HttpServletR ... -
Java上传文件同时含有表单域的实现
2008-04-25 17:08 2107package com.yc.eap.util; impor ... -
Jsp通过文件流实现文件下载
2008-04-23 10:44 2881<%@ page contentType="a ... -
Commons-fileupload工具的API与开发实例解析(三)
2008-04-23 10:25 19311.3.3 MultipartStream类 Multipar ... -
Commons-fileupload工具的API与开发实例解析(二)
2008-04-23 10:24 21571.2.5 文件上传编程实例 下面参考图1.2中看到的示例代码 ... -
Commons-fileupload工具的API与开发实例解析(一)
2008-04-23 10:22 3492文件上传组件的应用与编写 在许多Web站点应用中都需要为 ... -
Java压缩与解压缩文件
2008-04-23 10:05 1717package com.yc.ycportal.ge.util ... -
Java只获取系统时间的年份
2008-04-23 10:04 5572public static String getYear(){ ... -
Java连接Oracle数据库调用存储过程获取数据集
2008-04-23 10:03 2366package com.yc.ycportal.ge.util ... -
Java实现Ftp文件下载
2008-04-23 10:02 4590从http://www.enterprisedt.com/下载 ...
相关推荐
Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...
Java解析XML文档是Java开发中常见的任务,XML(Extensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等场景。本项目涵盖了三种主流的Java XML解析方法:SAX、DOM以及DOM4J,并提供了...
Java解析XML文件是一种常见的任务,尤其在处理结构化数据或者与服务器进行数据交换时。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输数据,具有良好的可读性和可扩展性。在Java中,有多种方式来...
Java 解析 XML 文件的 DOM 和 SAX 方式 Java 解析 XML 文件的 DOM 和 SAX 方式是指在 Java 中使用 Document Object Model(DOM)和 Simple API for XML(SAX)两种方式来解析 XML 文件的技术。下面将详细介绍这两种...
Java解析XML文件是一种常见的任务,尤其在处理结构化数据或与Web服务交互时。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输数据。本程序使用Java来解析XML文件,提取其中的数据并根据需要进行...
"java解析xml文档的常用方法" Java 解析 XML 文档的常用方法有四种:DOM、SAX、JDOM 和 DOM4J。下面对这四种方法进行详细的介绍: 1. 使用 DOM(JAXP Crimson 解析器) DOM(Document Object Model)是一种以层次...
### Java解析XML的四种方式详解 #### 一、DOM(Document Object Model) DOM是一种平台和语言中立的接口,它将XML文档表示为一个树结构,使得程序可以创建、读取、更新或删除树中的元素。DOM实现了W3C的标准,能够...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
### Java解析XML文档方式 #### 引言 随着互联网的发展,XML(可扩展标记语言)因其平台、语言和系统的无关性,在数据交换和集成中扮演着至关重要的角色。本文将深入探讨Java中解析XML的四种主要方法:DOM、SAX、...
Java解析XML文件主要依赖于Java API中的DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等解析器。在本案例中,我们重点讨论DOM解析器,DOMO通常指的是DOM操作。DOM解析器...
本压缩包“Java解析XML.zip”包含了两个关键的第三方库:jaxen-1.1.1.jar和dom4j-1.6.1.jar,它们是Java解析XML文件的重要工具。 首先,让我们了解一下**DOM4J**。DOM4J是一个强大的Java XML API,它提供了灵活且高...
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...
本示例提供了三种不同的方法来解析XML文件,并结合了数据库连接,特别是使用Oracle数据库。下面将详细介绍DOM、SAX和DOM4J这三种解析器的工作原理以及如何在Java中实现它们。 1. DOM(文档对象模型)解析: DOM是一...
Java解析XML文档主要涉及到两种方式:SAX和DOM。本文主要关注基于树和节点的DOM解析方法。DOM解析器将整个XML文档加载到内存中,形成一个树状结构,允许开发者通过API遍历和操作XML文档的每一个部分。 首先,DOM...