`
bcworld
  • 浏览: 39287 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用DOM4J读取xml输出为CSV文件

    博客分类:
  • XML
阅读更多

  实际开发中可能需要使用CSV(一种以逗号分隔的文件)文件,程序会读取该CSV文件,然后把数据插入到表中。然而,这种文件当逗号分隔的字段特别多时,操作起来就很麻烦,如修改第73个字段值。

  下面的程序演示了将字段数据写成XML文件的形式,然后再变换输出CSV文件的形式:

1.XML示例:

<?xml version="1.0" encoding="utf-8"?>
<records>
	<record no="1">
		<field lname="ziduan1" wname="W024_MOUSHIKOMINO">2532sf5277</field>
		<field lname="ziduan2" wname="W024_SENYOUCD">123456</field>
		<field lname="ziduan3" wname="W024_ISPZCD">070</field>
		<field lname="ziduan4" wname="W024_TJDSLZCD">1f23</field>
		<field lname="ziduan5" wname="W024_NAME">163</field>
	</record>
	<record no="2">
		<field lname="ziduan1" wname="W024_MOUSHIKOMINO">2532277</field>
		<field lname="ziduan2" wname="W024_SENYOUCD">123df456</field>
		<field lname="ziduan3" wname="W024_ISPZCD">0370</field>
		<field lname="ziduan4" wname="W024_TJDSLZCD">123</field>
		<field lname="ziduan5" wname="W024_NAME">14sd3</field>
	</record>
</records>

 2.java代码

  本程序使用DOM4J方式进行解析,故需要添加dom4j*.jar和jaxen*.jar

import java.io.PrintWriter;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jTest {

	public static void main(String[] args) throws Exception {
		SAXReader reader = new SAXReader();
		Document document = reader.read("I:\\test2.xml");
		//取得根元素
		//Element root = document.getRootElement();
		//System.out.println(root.getName());
		//Element对象有elementIterator(),可迭代; 
		List<Element> recordList=document.selectNodes("//records/record");
		List<Attribute>  lNameList=document.selectNodes("//records/record[@no='1']/field/@lname");
		String temp=null;
		PrintWriter pw=new PrintWriter("I:\\hello2.csv");
		
		for (int k = 0; k < lNameList.size(); k++) {
			Attribute f=lNameList.get(k);
			temp=f.getText();
			
			if(k==lNameList.size()-1){
				pw.print(temp);
			}else
			pw.print(temp+",");
		}
		pw.println();
		for (int i = 0; i < recordList.size(); i++) {
			//取得某个record
			Element fieldElement=recordList.get(i);
			//取得record下面的元素(List)
			List<Element> fieldList=fieldElement.selectNodes("./field");
			for (int j = 0; j < fieldList.size(); j++) {
				Element fieldNodElement=fieldList.get(j);
				temp=fieldNodElement.getText();
				if(j==fieldList.size()-1){
					pw.print(temp);
				}else
				pw.print(temp+",");
			}
			
			pw.println();
		}
		
		pw.close();
	}
}

 3.程序运行后的hello2.csv文件内容如下:

  • 大小: 1.6 KB
分享到:
评论

相关推荐

    将xml文件转换成csv格式

    2. **解析XML文件**:使用XML解析器,如Python的`ElementTree`库,Java的`JDOM`或`DOM4J`,或者JavaScript的`DOMParser`,来读取和解析XML文件。解析器能够将XML文档转化为可操作的对象结构。 3. **构建CSV数据模型...

    dom4j-xml.rar_DOM4J

    在“dom4j-xml.txt”文件中,可能包含的是一个使用DOM4J操作XML的具体示例。通常,这样的示例会展示如何创建`Document`对象,然后使用`Element`类来添加元素,`Attribute`类来添加属性,`Text`类来添加文本内容。...

    Dom4j例子,可以解析大部分的XML

    在TestDom4j项目中,可能包含一个简单的Java程序,演示了如何使用Dom4j解析XML文件、查找特定元素、修改元素内容,并将结果写回XML。这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。...

    java Dom4j 无敌连环解析XML工具类

    DOM4J不仅限于这些基本操作,还支持XPath表达式、XML Schema验证、事件驱动的SAX解析、StAX解析以及转换为其他格式(如HTML或CSV)。通过熟练掌握DOM4J,你可以高效地处理各种XML任务,从而提高你的Java项目中的XML...

    JAVA操作XMLDOM4j简单教程

    在本教程中,我们将深入探讨DOM4j的核心概念、主要接口以及如何使用它来读取、解析和操作XML文档。 首先,DOM4j的主要接口集中在`org.dom4j`包中,这些接口定义了XML文档的各种组成部分。例如: 1. `Attribute`:...

    jar包Dom4j

    1. **DOM模型**: DOM4J实现了W3C DOM接口,允许开发者以树形结构来表示和操作XML文档。通过DOM模型,可以轻松地遍历整个文档,查找、修改或添加元素、属性等。 2. **SAX解析**: DOM4J也支持SAX解析器,这种解析方式...

    DOM4J2.1.1与mysql驱动

    1. **解析XML文档**:DOM4J使用SAX或StAX解析器读取XML文件,并构建一个树形结构的Document对象,允许开发者通过XPath表达式进行查询。 2. **XPath支持**:DOM4J支持XPath,这是一种强大的查询语言,可以快速定位...

    dom4j-2.0.2.rar 解析jar下载

    DOM则是一种树形结构的解析方式,可以方便地遍历和操作XML文档,但可能不适合处理非常大的文件。 DOM4J中的关键类包括: 1. `Document` - 表示整个XML文档,包含根元素和其他元素。 2. `Element` - 表示XML的元素...

    java实现csv 转 xml

    我们可以使用`java.io.BufferedReader`读取CSV文件,然后使用`javax.xml.transform.Transformer`将数据转换成XML。首先,解析CSV文件,将每一行转换为一个对象,然后创建XML元素并添加到树中。 方法二:使用第三方...

    Dom4j学习资料集锦

    这个学习资料集锦是为初学者准备的,旨在帮助你们掌握DOM4J的核心概念和常用操作。 **一、DOM4J概述** DOM4J是一个开源的XML库,它的设计目标是简化XML的处理,并提供一种灵活的API,使得XML编程在Java环境中变得...

    基于j'ava的dom4j包

    Java中的DOM4J是一个强大的XML处理库,它提供了一种灵活的方式来解析、创建、修改以及操作XML文档。这个库的设计目标是简化XML编程,使得开发者能够更高效地处理XML数据。DOM4J与标准的DOM(Document Object Model)...

    dom4j是一个极其优秀及简单于一体的xml解析器 开源的

    1. **文档对象模型(Document Object Model, DOM)**:DOM4J提供了一套完整的DOM API,可以将XML文档加载为一棵节点树,通过遍历和操作这棵树,可以方便地访问和修改XML内容。例如,你可以通过DOM4J获取或修改XML...

    JAVA读XML:sax,dom,jdom,dom4j的比较以及选择.doc

    Java读取XML文档时,通常有多种方法,包括SAX、DOM、JDOM和DOM4J等。这些解析器各有特点,适用于不同的场景。这里主要介绍DOM4J库的使用,DOM4J是一个非常灵活且功能强大的XML处理库,提供了丰富的API来处理XML文档...

    java 根据javaBean反射自定义导出 excel、xml、pdf、csv

    2. **XML**:可以使用JAXB(Java Architecture for XML Binding)或者DOM、SAX、StAX等API来生成XML文件。首先,为JavaBean创建一个对应的XML Schema(XSD),然后使用JAXB将JavaBean对象转换成XML文档。 3. **PDF*...

    XML阅读器(可导出txt&excel;)

    在这个应用中,可能采用了MSXML2库,这是Microsoft提供的一个用于解析和操作XML的组件。 2. **DOM模型**:DOM是一种将XML文档表示为一棵节点树的模型,其中每个元素、属性、文本等都有相应的节点。用户界面显示的二...

    java 读取Ftp指定位置的文件解析并入库

    标题 "java 读取Ftp指定位置的文件解析并入库" 涉及到的是使用Java编程语言通过FTP(File Transfer Protocol)协议从远程服务器上下载文件,然后对下载的文件进行解析,并将解析得到的数据存储到数据库中。...

    自己制作的可以解析一切xml的工具

    本文将深入探讨如何使用自定义工具解析XML文件,并将其内容保存到内存,最终输出为文本文件。 首先,理解XML的基本结构至关重要。XML文件由一系列元素构成,每个元素由开始标签、元素内容和结束标签组成。例如,`...

    一文秒懂python读写csv xml json文件各种骚操作

    - 使用`csv.reader()`读取CSV文件。 - 可以通过迭代器的方式逐行读取。 - 示例代码如下: ```python import csv filename = "my_data.csv" fields = [] rows = [] # 读取csv文件 with open(filename, 'r'...

    表格转csv-xml-json

    在表格转csv的过程中,我们通常会利用编程语言(如Python或JavaScript)的库,例如Python的pandas库,将表格数据导出为CSV文件。 XML则是一种更复杂的数据存储格式,它使用标签来描述数据结构和内容,常用于存储和...

    Xml2csv:本项目使用 Hadoop 实现将 StackOverflows xml dump 转换为 csv

    标题中的“Xml2csv:本项目使用 Hadoop 实现将 StackOverflows xml dump 转换为 csv”表明这是一个利用Hadoop框架处理大型XML数据,将其转换为更便于分析和处理的CSV格式的项目。StackOverflow是知名的程序员问答社区...

Global site tag (gtag.js) - Google Analytics