import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 解析zip文件的工具类
*
* @author Administrator
*
*/
public class ZipReadXmlUtils {
/**
* 获得要操作的xmlPath下面 ,所有nodeName节点的值.
*
* @param zipFileName
* zip文件
* @param findFileName
* zip文件中要操作的xml文件
* @param nodesXmlPath
* 要操作的xmlPath
* @param nodeName
* 要获得值的节点
* @return 要操作的xmlPath下面 ,所有nodeName节点的值.
*/
public static List<String> getNodesValues(String zipFileName,
String findFileName, String nodesXmlPath, String nodeName) {
ZipFile zipFile = null;
InputStream is = null;
try {
zipFile = new ZipFile(zipFileName);
Enumeration entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) entries.nextElement();
if (findFileName.equals(entry.getName())) {
is = zipFile.getInputStream(entry);
}
}
} catch (IOException e) {
// 在此处可以做日志
e.printStackTrace();
}
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(is);
List<Element> list = document.selectNodes(nodesXmlPath);
Iterator iter = list.iterator();
Element element;
Iterator it;
List<String> noValue = new ArrayList<String>();
while (iter.hasNext()) {
element = (Element) iter.next();
it = element.elementIterator(nodeName);
while (it.hasNext()) {
Element e = (Element) it.next();
noValue.add(e.getText());
}
}
return noValue;
} catch (DocumentException e) {
// 做日志
e.printStackTrace();
} finally {
if (zipFile != null) {
try {
zipFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}
分享到:
相关推荐
总的来说,“Java解析XML.zip”提供的这两个库为Java开发者提供了强大的XML处理能力,使他们能够在Java应用程序中方便地解析、操作和查询XML数据。通过学习和掌握DOM4J和JAXEN,开发者可以更高效地处理XML任务,提升...
在Java编程中,解析ZIP文档是一项常见的任务,特别是在处理包含多种文件格式如XML和HTML的压缩包时。本文将深入探讨遇到的“解析zip中解析xml和html文档流断”的问题,以及如何解决这个问题。 首先,问题的核心在于...
- 数值转换:XML中的文本数据需要转换为适当的数值类型,如浮点数或整数。 - 错误处理:处理可能存在的XML格式错误,确保解析过程的健壮性。 在源代码中,可能会看到使用Java的`javax.xml.parsers`和`org.w3c.dom`...
在Java中,有多种方式可以解析XML文档,包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。下面我们将详细探讨这些解析方法以及相关的API。 1. DOM解析器:DOM解析器...
document.xml 文件是基于 XML 格式的,可以使用 Java 中的 DOM 或 SAX 解析器来解析该文件。 3. 书签的 XML 结构 在 Word 文档中,书签是使用 `<w:bookmarkStart>` 和 `<w:bookmarkEnd>` 标签来表示的,其中 `...
综上所述,Java开发中,了解如何创建和管理JAR包,处理ZIP压缩解压,解析XML文档,以及使用数据库连接驱动是十分重要的技能。这些知识点构成了Java开发中的基础部分,为实现功能丰富的应用程序提供了必要的工具和...
"XML How to Program - Java.zip"可能是一个包含关于如何使用Java处理XML的教程或参考材料。 Java API for XML Processing (JAXP) 是Java平台的标准部分,它提供了处理XML的基本工具。JAXP允许开发者进行XML解析、...
"xml-apis.zip" 中的"xml-apis.jar" 文件是XML API的核心库,包含了多个与XML处理相关的Java包,如javax.xml、org.w3c.dom和org.xml.sax等。这些包提供了各种接口和类,帮助开发者执行以下任务: 1. **解析XML**:...
DOM解析将整个XML文档加载到内存中,形成一棵树形结构,允许开发者以任意顺序访问和修改文档的任何部分。这种方式适合小到中等大小的文档,但对大型文档可能导致内存消耗过大。相反,SAX解析是事件驱动的,只在读取...
基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...
SAXReader是JDOM库中的一个类,它实现了SAX解析器接口,适用于处理大型XML文档,因为它不会将整个XML文档加载到内存中,而是采用事件驱动的方式,逐个处理XML元素。这种方式对内存消耗较小,适合处理大文件。 首先...
Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...
在Java中,解析XML文档有多种库,其中JDOM是一个纯Java的API,专为处理XML而设计。本教程将详细介绍如何使用JDOM库来解析XML文档。 1. **JDOM简介** JDOM是Java Document Object Model的缩写,它提供了一种高效、...
(1) 解压Xml Tools 2.4.8 Unicode.zip,关闭Notepad++ (2) 将xmltools子文件夹下的XMLTools.dll拷贝至Notepad++的plugins子文件夹 (3) 将ext_libs子文件夹下的所有dll文件拷贝至Notepad++的根目录(与notepad++.exe...
Java作为一种多用途的编程语言,提供了丰富的库和工具来解析PDF、ZIP、DOC和XLS等格式的文件。下面将详细介绍这些格式的解析方法。 首先,PDF(Portable Document Format)是一种用于存储和交换文档的格式,由Adobe...
在"xmljava.zip"这个压缩包中,我们可以预想它包含了与使用Java处理XML相关的代码示例或项目。 XML的基本结构由元素、属性、文本内容、注释和处理指令组成。元素是XML文档的核心,它们定义了数据的结构。属性用于为...
2、将PDF文件压缩成ZIP文件 3、生成一个PDF文件D:\\zhouyl\\FYImagePdf.pdf,将“D:\\zhouyl\\1234.png”图片放在第一页上,将“D:\\zhouyl\\1111.png”图片放在第二页上 并在每一页上面标注一下文字,说明是第几...
在"java XStream xml解析 jar包.zip"中,包含了XStream库的不同版本和依赖库,这将帮助我们理解和使用XStream进行XML操作。 1. **XStream介绍**: - XStream是一个开源项目,由Joe Walnes创建,现在由XStream ...
在Java中,处理XML的主要API包括JAXB(Java Architecture for XML Binding)、DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。这些API提供了对XML文档的各种操作方法,...
在编程语言中,如Java,有多种库可以进行XML解析。例如,Java的DOM解析器有JDom、Apache的Xerces,而SAX解析器则有Java内置的SAXParserFactory。Python有ElementTree库支持DOM和SAX解析,而Python的lxml库提供了更...