直接贴代码
package org.autumn.kettle;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class LearnSAX {
public static void main(String[] args) throws Exception, SAXException {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
Date before = new Date();
parser.parse(new File("D:/hotel.xml"), new MyHandler());
Date after = new Date();
System.out.println("it takes " + (after.getTime() - before.getTime())
+ "ms");
}
}
class MyHandler extends DefaultHandler {
OutputStreamWriter out = null;
@Override
public void startDocument() throws SAXException {
try {
out = new OutputStreamWriter(
new FileOutputStream("D:/xml2csv.csv"), "GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Override
public void endDocument() throws SAXException {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if (qName.equalsIgnoreCase("row")) {
try {
out.write("\r\n");
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void characters(char ch[], int start, int length)
throws SAXException {
String s = new String(ch, start, length);
if (!s.trim().isEmpty())
try {
out.write(s + ",");
} catch (IOException e) {
e.printStackTrace();
}
}
}
输入的XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<Rows>
<Row><domain>YJ</domain> <hotelname>阳江猾令新另赂宾馆</hotelname> <hotelno>230016</hotelno> <lxr>邹垮龚</lxr> <tel>23238687</tel> <address>阳江市铁核估金伎区0号</address> <ssq>2</ssq> <bz/> </Row>
<Row><domain>QY</domain> <hotelname>清远埔沃睬储酒店</hotelname> <hotelno>443171</hotelno> <lxr>柏弗蚊</lxr> <tel>21289491</tel> <address>清远市陨促醛映区49号</address> <ssq>3</ssq> <bz/> </Row>
</Rows>
输出的CSV文件:
YJ,阳江猾令新另赂宾馆,230016,邹垮龚,23238687,阳江市铁核估金伎区0号,2,
QY,清远埔沃睬储酒店,443171,柏弗蚊,21289491,清远市陨促醛映区49号,3,
分享到:
相关推荐
在处理XML数据时,我们经常需要进行数据转换,以便将XML格式的数据转化为其他格式,如JSON、CSV或者数据库记录。下面将详细讨论XML数据转换的相关知识点。 一、XML的基本结构与特性 XML是一种自描述性的文本格式,...
XML阅读器能将XML数据转换成Excel表格,这意味着它可能利用了Excel的COM接口或者CSV格式作为中间桥梁,因为CSV(Comma-Separated Values)是常见的导入到Excel的数据格式。 6. **VC++开发**:从文件名(如`.cpp`和`...
在Java编程中,XML经常被用作数据交换格式,特别是在处理配置文件、Web服务或者序列化对象时。JavaBean则是一种符合特定规范的Java类,通常用于封装数据和业务逻辑,它们可以方便地被其他组件或框架使用。 JavaBean...
3. **生成XML**:使用XML库生成符合特定模式的XML文件。 此外,还可以用Excel作为数据输入界面,用户填写后,通过脚本或程序自动转换成XML,便于数据交换或导入其他系统。 在博客链接中(已省略),可能探讨了如何...
可以按照特定格式(如JSON、CSV)输出,或者直接以原始的XML结构保存。 6. **关闭文件**:确保在操作完成后关闭输入和输出文件,防止数据丢失。 总之,制作这样一个工具涉及了XML解析、内存管理和文件操作等多方面...
它可以将XML转换为HTML、另一个XML格式,甚至是文本或CSV文件。 9. **编程库与API**:在不同编程语言中,如Java(JAXB, DOM, SAX, XSLT),C#(System.Xml),Python(ElementTree,lxml),PHP(DOMDocument),都...
5. **转换工具**:可能还包含一些工具,用于将AUTOSAR XML数据与其他格式(如JSON、CSV)相互转换,方便数据交换和分析。 6. **错误处理**:考虑到XML文件可能存在的格式错误,库会包含错误检测和处理机制,确保在...
在TestDom4j项目中,可能包含一个简单的Java程序,演示了如何使用Dom4j解析XML文件、查找特定元素、修改元素内容,并将结果写回XML。这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。...
本文将深入探讨如何利用Java处理XML文档,通过使用Document Object Model (DOM),Simple API for XML (SAX),以及Extensible Stylesheet Language Transformations (XSLT)等技术来解析、操作和转换XML数据。...
DOM4J还支持XPath查询,可以使用XPath表达式定位XML文档中的特定节点。此外,它还提供了解析XML文档、修改XML结构、转换XML到其他格式(如HTML或CSV)等功能。 在选择XML解析方式时,SAX适合大文件,因为它采用...
信息更新是对XML文档进行修改,而导出报表则可能需要将XML数据转换为更友好的格式,如CSV或PDF,这可以通过Java的转换库如XSLT(Extensible Stylesheet Language Transformations)来完成。 在实际开发中,为了保证...
- **SAX(Simple API for XML)**:一种事件驱动的解析器模型,适用于处理大型XML文档,它以流式方式读取XML,仅在遇到特定元素或属性时触发回调函数。 - **DOM(Document Object Model)**:将XML文档表示为一棵...
- 数据转换:将XML文档转换为其他格式,如JSON或CSV。 - 数据修改:更新XML文档的元素值,添加或删除元素。 6. VTD-XML源码分析: 通过阅读源码,可以理解其内部数据结构和算法,有助于定制化开发和性能优化。...
Fortify XML Converter是一款工具,主要用于将Fortify Software Security Center(FSSC)生成的XML报告转换成其他格式,便于分析和处理。这个压缩包“Fortify-XML-Converter-源码.rar”包含了该工具的源代码,对于...
通过XSLT,我们可以将XML数据转换成HTML,便于网页展示,或者转换成其他格式,如CSV,适应不同的应用场景。 XML大全的学习涵盖XML的基础语法、解析方法、验证机制(如DTD、XML Schema)、XPath(XML Path Language...
除了基本的读取、遍历和修改,它还包括了创建XML文档、转换XML到其他格式(如HTML或CSV)、处理命名空间、解析和生成XML Schema(XSD)等能力。此外,DOM4j还支持事件监听和访问者模式,使你可以根据需要定制XML处理...
DOM则是将整个XML文件加载到内存中的树形结构,便于进行随机访问。 2. **创建XML文档**:DOM4J提供了API来创建新的XML文档,包括添加元素、属性、文本节点等。 3. **修改XML文档**:通过DOM4J,可以方便地对XML...
在Java中,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)或StAX(Streaming API for XML)来解析XML文件。"xmlfind.java"可能实现了XML数据的搜索功能,比如查找特定元素、属性或者值。DOM...
这通常涉及到文件I/O操作和解析特定的文件格式。例如,如果数据是XML格式,可以使用DOM、SAX或lxml库来解析;如果是二进制,可能需要自定义解码算法。 2. 数据清洗:提取出的数据可能存在冗余、错误或不完整的情况...