- 浏览: 397654 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (139)
- java (39)
- linux (9)
- hibernate (2)
- Spring (10)
- Struts2 (1)
- Ext (38)
- Ext + Java (5)
- Oracle (5)
- JavaScript (15)
- 开发工具 (3)
- ajax (2)
- WebSerivice+Spring (2)
- WebService+CXF (2)
- 服务器 (4)
- MQ (1)
- Apache (3)
- axis (3)
- myeclipse,maven (2)
- WebService (4)
- web (11)
- httpinvoke (1)
- 多线程 (3)
- 同步 (1)
- Servlet (2)
- css (2)
- div (2)
- html (1)
- file (2)
- 应用软件 (1)
- myEclipse10 (1)
- mysql (2)
- Extjs4 (2)
- JavaScript css (1)
- mongodb (2)
- socket (6)
- 流媒体 (5)
- 语音技术 (5)
- freeswitch (1)
最新评论
-
白天看黑夜:
Apache Mina Server 2.0 中文参考手册(带 ...
Apache Mina 学习 -
stduPanda:
引用引用[自行车在现场咨询quote]引用引用引用引用引用引用 ...
Errors running builder 'DeploymentBuilder' on project '工程名' -
鱼翔空:
maven3 导入报Plugin execution not ...
CXF自动生成wsdl与xsd文件 -
哈哈哥_Supper:
closeAction:'hide',
Extjs4 tabPanel关闭后打开 cannot read property addcls of null -
哈哈哥_Supper:
var tab1 = tabPanel.add(
...
Extjs4 tabPanel关闭后打开 cannot read property addcls of null
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Set;
import javax.xml.parsers.ParserConfigurationException;
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;
import com.incesoft.xmas.commons.StringUtils;
public class MyXml extends DefaultHandler {
java.util.Stack tags = new java.util.Stack();
static Set<String> set = new HashSet<String>();
StringBuffer str = new StringBuffer();
public MyXml() {
super();
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String tag = (String) tags.peek();
if (tag.equals("category")) {
str.append(new String(ch, start, length));
}
}
@Override
public void startElement(String uri, String localName, String name, Attributes attributes)
throws SAXException {
tags.push(name);
}
@Override
public void endElement(String uri, String localName, String name) throws SAXException {
if (name.equals("category")) {
String strs = str.toString().trim();
if (StringUtils.isNotBlank(strs)) {
if (set.add(str.toString().trim())) {
writeTxtFile("D:\\1.txt", str.toString().trim());
System.out.println("|" + str.toString().trim() + "|");
}
}
str.setLength(0);
}
}
public static void main(String[] args) {
File file = new File("D:\\1.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
MyXml reader = new MyXml();
sp.parse(new InputSource("D://00.xml"), reader);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void writeTxtFile(String filename, String info) {
// 先读取原有文件内容,然后进行写入操作
String message = info + "\r\n";
BufferedWriter fw = null;
try {
// fw = new FileWriter(fileName);
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(filename, true), "GBK");
// out.append(message);
fw = new BufferedWriter(out);
fw.append(message);
fw.flush();
// fw.append(message);
// fw.flush();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
}
}
发表评论
-
linux下查找java进程占用CPU过高原因
2018-04-03 12:35 7971. 查找进程 top查看进程占用资源情况 ... -
Apache Mina TCP/UDP功能使用说明
2017-03-14 14:18 1773Apache Mina ... -
WebService CXF客户端调用样例
2013-01-04 14:48 2064如果服务端提供jar包,客户端直接引用jar ... -
ExtJS layout的9种样式风格总结
2012-12-18 10:29 1120文章转载自:http://virgoooos.iteye.co ... -
Zip文件解析(包含中文目录)
2012-12-11 13:22 2419在解析zip文件时,由于默认版本不支持中文目录,导致解析时遇到 ... -
正则表达式详解
2012-10-09 15:13 956转载自:http://edu.yesky.com/ ... -
map 排序
2012-09-28 10:44 1190用于map的值排序的方法,修改SortedSet 的方法即 ... -
java读写txt文件
2012-09-19 18:49 30029import java.io.BufferedReader; ... -
UTF-8 的bom格式处理
2012-09-14 11:54 1685一般通过httpcient请求的内容,有可能返回utf- ... -
java获取当前工程目录
2012-08-23 17:41 1684转载自:http://blog.csdn.net/yan ... -
div+css实现圆角聊天框
2012-08-14 15:50 4826需要做个聊天样式的对话框,找了半天,终于找到一个比较好的样式, ... -
linux 启动oracle
2012-07-24 10:58 1057转载:http://www.cnitb ... -
java写excel03文件
2012-07-18 00:06 998用java jxl写入excel03文件,下面给出一个简 ... -
JSP页面查询显示常用模式
2012-07-16 21:09 1248全文转载自:http://pharaohsprinc ... -
Servlet调用Spring bean
2012-07-13 16:30 1719servlet中直接调用spring时会出现Nullpo ... -
Json
2012-07-11 11:25 1109原文转载自:http://www.cnblogs.com ... -
java常用英语词汇翻译
2012-06-04 14:07 2489<java常用英语词汇>abstract 抽象的 ... -
JAVA垃圾回收分析&& java虚拟机垃圾回收机制
2012-06-04 11:11 1260JAVA垃圾回收分析&&a ... -
原子变量(AtomicLong, AtomicInteger, AtomicReference)
2012-05-30 11:49 1779原文转载:http://meng ... -
java读写txt文件
2012-05-20 19:55 52本文转载自:http://www.blogjava.ne ...
相关推荐
Java SAX(Simple API for XML)解析器是一种基于事件驱动的XML解析方式,它不将整个XML文档加载到内存中,而是逐行读取,当遇到某个事件(如开始标签、结束标签等)时,会触发相应的事件处理器方法。这种方式节省了...
总的来说,SAX解析XML文件结合SD卡数据访问是Android开发中的常见操作,能够实现高效的文件解析和存储,尤其适用于资源有限的移动设备环境。通过以上步骤和注意事项,开发者可以灵活地处理XML数据并在SD卡上进行存取...
本文将深入讲解如何使用SAX(Simple API for XML)解析XML文档,并将解析结果导出到Excel文件中。SAX是一种事件驱动的解析方式,相比DOM(Document Object Model)解析,它更节省内存,适用于处理大型XML文件。 ...
QT使用SAX读取xml高效-快速.rar SAX(Simple API for XML) 如果你只想读取并显示整个XML文档,那么SAX是很好的选择,因为它提供了比DOM更简单的接口,并且它不需要将整个XML文档一次性读入内存,这样便可以用来读取...
### XML读取 在Java中,可以使用DOM(Document Object Model)、SAX(Simple API for XML)和StaX(Streaming API for XML)等API来解析XML。DOM将整个XML文档加载到内存中,形成一个树形结构,适合小型XML文件。...
在Java中,SAX解析器不直接支持修改XML文件,但我们可以使用一种间接的方法来实现这一目标:先读取XML文件,然后在内存中构建一个新的XML结构,再将这个新结构写回文件。下面是一个简化的步骤: 1. **创建SAX解析器...
4. 创建解析器:使用`SAXParserFactory`创建一个`SAXParser`实例,然后用它来解析XML文件。 ```java SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); ...
本文将深入探讨如何使用SAX、DOM和Pull解析器解析XML文件,以及如何生成XML文件。我们将同时展示Java和Kotlin两种语言的实现方法。 一、SAX解析XML文件 SAX(Simple API for XML)是一种事件驱动的解析器,它不会一...
SAX解析器则是事件驱动的,逐行读取XML,适合处理大型文件。 3. **DOM解析**:使用DOM解析,我们可以获取XML文档的节点信息,包括根节点、子节点、属性等,并能对它们进行操作。例如,通过`创建XML文档对象`、`加载...
`OutSQLandInputSQL`可能是这个例题中的关键代码文件,它可能包含从XML读取数据并写入数据库的实现(`OutSQL`),以及从数据库查询数据并输出到XML的实现(`InputSQL`)。这两个部分通常涉及上述提到的XML解析、...
在本压缩包"xml.rar"中,包含了一些关于如何使用MSXML库进行XML文件读取和写入的示例资源。 MSXML(Microsoft XML Core Services)是微软提供的一个组件,它允许开发者在Windows环境中处理XML文档。MSXML提供了多种...
在Java中,处理XML文件是一项常见的任务,无论是读取还是写入XML文档,都有多种方法可供选择。本节将详细介绍如何在Java中进行XML的解析和读取。 1. **DOM解析器**: DOM(Document Object Model)是W3C推荐的一种...
代码示例中没有给出完整的SAX解析器实现,但通常会包括`SAXParserFactory`创建`SAXParser`,然后使用`parse`方法解析XML文件,并传入自定义的`DefaultHandler`子类实例。 总结: DOM解析器适合对XML文档进行随机...
当需要将处理过的数据写回XML文件时,可以使用“写入XML文件”或“序列化XML”函数。这些函数将LabVIEW的数据结构转化为XML格式,并将其保存到指定的文件中,确保数据的持久化存储。 解析XML是整个过程的核心部分。...
在这个场景中,我们关注的是如何使用DOM4J以String的形式读取XML内容,然后将String的值赋给XML中的特定节点,最后将更新后的内容写回XML文件。下面我们将详细探讨这一过程。 1. **解析XML到String** 要将XML文件...
SAX是一种基于事件驱动的解析器,它不将整个XML文档加载到内存,而是逐行读取,遇到元素、属性等事件时触发回调函数。适合处理大型XML文件。 - 优点:内存占用少,适合处理大型XML文件。 - 缺点:编程复杂,需要编写...
1. 使用SAX或PULL解析XML,当遇到需要处理的元素时,将相关信息保存到内存或写入新的XML文件。 2. 在解析过程中,根据处理的事件生成相应的XML元素。如果是开始元素,就创建一个新的元素;如果是结束元素,就关闭...
在Android中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建和构建XML文档,然后使用`Transformer`将其转换为字符串或直接写入文件。以下是一个简单的DOM生成XML文件的例子: ```java ...
使用DOM4J可以轻松地读取、修改和写入XML文件。 5. **JavaFX的XML API**: 虽然主要用于构建图形用户界面,JavaFX也提供了一些XML处理工具,如`javafx.scene.web.XmlHttpRequest`,可以用来异步加载和发送XML数据...
2. SAX解析器:SAX解析器采用事件驱动的方式,逐行读取XML文件,遇到元素、属性等时触发相应的事件。这种方式内存效率高,适用于大文件或资源有限的环境,但处理起来比DOM复杂,因为需要编写事件处理器。 TinyXML是...