- 浏览: 1510865 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (595)
- Java咖啡厅 (208)
- IT杂侃 (23)
- 程序员笑话 (7)
- 我的后现代文学 (1)
- WEB编程 (116)
- 软件评测 (8)
- 操作系统 (3)
- 炫目Ruby (2)
- 行业知识 (7)
- 我的动漫情结 (6)
- 其他 (8)
- Window DIY (6)
- 古文学 (3)
- 转载文章 (2)
- IT百科 (7)
- 动态网页Active (1)
- 文档 (1)
- 设计理论 (11)
- .NET 快速开发 (18)
- 英语学习 (6)
- 网站分析 (2)
- 开源软件 (4)
- 数据库 (28)
- 笔记 (4)
- 源代码共享 (8)
- IT人物 (2)
- 软件管理 (10)
- 小说创作 (0)
- 大众软件 (12)
- 网站评论 (3)
- 小虾乱说 (10)
- 游戏 (8)
- 心情 (3)
- 娱乐休闲 (2)
- Delphi编程 (1)
- PHP编程 (4)
- 中间件 (2)
- 移动开发 (2)
- Office应用 (2)
- Photoshop (1)
- Eclipse (5)
- 面试题 (1)
- 手机评测 (0)
- VBScript (1)
- WEB前端-EXT (3)
- 吐槽 (1)
- Java咖啡厅 Ibatis (1)
- javascript Ext (1)
- jquery ui (1)
- require (1)
- WEB编程 Javascript (1)
- jquery (1)
- Swing (1)
- 分布式 (1)
最新评论
-
zhangjihao:
28. 下面哪个Set是排序的? A. LinkedHas ...
Java面试题(选择题) -
zhangthe9:
ICMP报文被封装在IP包里,也就是说他是由IP协议承载的,从 ...
Java面试题(选择题) -
zhunengfei:
真的假的?
自已写的jquery ui框架 -
white_crucifix:
少年,发烫是所有智能手机的特点,而莫名发烫是所有安卓手机的特点 ...
【吐槽】三星手机的OS是一砣屎 -
suzu88:
试了一下,可以用。如果美化一下控件和窗体更有意思。
一个用XML构建Swing视图的框架
先定义一个简单的input.xml结构,让java进行input.xml的读取和重新输出为output.xml
input.xml格式:
<?xml version="1.0" encoding="gb2312"?>
<学生花名册>
<学生>
<姓名>李丽</姓名>
<性别>女</性别>
</学生>
<学生>
<姓名>刘畅</姓名>
<性别>男</性别>
</学生>
</学生花名册>
为标记我们定义相关的studentBean:
public class StudentBean {
private String sex;
private String name;
public void setSex(String s){sex=s;}
public String getSex(){return sex;}
public void setName(String n){name=n;}
public String getName(){return name;}
}
我们定义一个XMLTest类,包含2个操作,一个读取xml,一个写xml文件,并实现测试main函数。
package test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
public class XMLTest {
private Vector student_vector;
public XMLTest()
{
if(student_vector==null)
{
student_vector=new Vector();
}
}
public void readXMLFile(String location)
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=null;
try{
db=dbf.newDocumentBuilder();
}catch(ParserConfigurationException pce)
{
System.err.println(pce);
System.exit(1);
}
Document doc=null;
try{
doc=db.parse(location);
}catch(Exception e)
{
System.err.println(e);
System.exit(1);
}
Element root=doc.getDocumentElement(); //root为"学生印花名"节点
NodeList students=root.getElementsByTagName("学生"); //返回“学生”节点集合
//为每一个读入的学生信息建立对应的studentBean对象,设置对象信息
for(int i=0;i<students.getLength();i++)
{
Element student=(Element)students.item(i);
StudentBean studentBean=new StudentBean();
//这里实现不是很合理,java的nodelist没有根据tag寻找子节点的方法,以后完善
studentBean.setName(student.getChildNodes().item(1).getTextContent());
//item(3)得到的是学生的性别节点,java把</姓名>也作为了一个子节点处理
studentBean.setSex(student.getChildNodes().item(3).getTextContent());
//保存学生对象到vector容器中
student_vector.add(studentBean);
}
}
//进行document操作首先实例化documentbuilderfactory,然后实例化documentbuilder,最后根据它得到document
public void writeXMLFile(String outFile)//throws Exception
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=null;
try{
db=dbf.newDocumentBuilder();
}catch(Exception pce){
System.err.println(pce);
System.exit(1);
}
Document doc=db.newDocument();
//在doc中创建"学生花名册"tag作为根节点
Element root=doc.createElement("学生花名册");
doc.appendChild(root);
for(int i=0;i<student_vector.size();i++)
{
StudentBean student=(StudentBean)student_vector.get(i);
Element studentNode=doc.createElement("学生");
root.appendChild(studentNode);
//studentNode.setAttribute("姓名", student.getName());
//studentNode.setAttribute("性别", student.getSex());
Element stuNameNode=doc.createElement("姓名");
stuNameNode.appendChild(doc.createTextNode(student.getName()));
studentNode.appendChild(stuNameNode);
Element stuSexNode=doc.createElement("性别");
stuSexNode.appendChild(doc.createTextNode(student.getSex()));
studentNode.appendChild(stuSexNode);
}
//用xmlserializer把document的内容进行串化
FileOutputStream os=null;
try{
OutputFormat outformat=new OutputFormat(doc);
os=new FileOutputStream("output.xml");
XMLSerializer xmlSerilizer=new XMLSerializer(os,outformat);
xmlSerilizer.serialize(doc);
}catch(Exception e)
{
System.out.println("create xml failed...\n");
}
//功能同xmlSerializer,最后运行效果相同
/*
FileOutputStream outStream=null;
try{
outStream=new FileOutputStream(outFile);
}catch(Exception e)
{
System.err.println(e);
System.exit(1);
}
OutputStreamWriter outWriter=new OutputStreamWriter(outStream);
//doc.write(outWriter,"GB2312");
callWriteXMLFile(doc,outWriter,"GB2312");
try{
outWriter.close();
outStream.close();
}catch(Exception e)
{
System.err.println(e);
System.exit(1);
}
}
private void callWriteXMLFile(Document doc,OutputStreamWriter w,String encoding)
{
try{
Source source=new DOMSource(doc);
Result ret=new StreamResult(w);
Transformer xformer=TransformerFactory.newInstance().newTransformer();
xformer.setOutputProperty(OutputKeys.ENCODING,encoding);
xformer.transform(source,ret);
}catch(TransformerConfigurationException e)
{
e.printStackTrace();
}
catch(TransformerException e)
{
e.printStackTrace();
}
}*/
}
public static void main(String[] args)
{
XMLTest xmlTest=new XMLTest();
System.out.println("开始读xml文件...");
xmlTest.readXMLFile("Input.xml");
System.out.println("读入完毕,开始写output.xml文件");
xmlTest.writeXMLFile("Output.xml");
System.out.println("写入完成");
}
}
发表评论
-
原创程序- Web版数据库管理
2017-11-15 00:39 1185这是我自已写的Web版的数据库管理工具,主要是依赖于JDBC ... -
Eclipse创建Web项目
2017-07-29 10:53 7841. 打开创建Web项目的对话框 2 ... -
Ant常用的命令
2016-06-16 13:31 13521. 使用Ant生成War包: <war ... -
在Eclipse上使用Ant发布项目
2015-10-17 15:03 1378这里笔者使用是Eclip ... -
Resin中增加一个虚拟目录的方法
2015-09-13 12:53 1124打开resin.config 找到到<h ... -
一个用XML构建Swing视图的框架
2015-09-06 23:12 2610平常想用Java写一些 ... -
Eclipse常见问题
2015-08-24 19:41 741如果Eclipse被强制关闭时,Tomcat可能没有 ... -
Spring Tools Suite 入门教程
2015-05-09 09:15 0Spring Tools Suit,这里简称STS,是 ... -
使用FTP的方法
2015-03-01 17:49 10211. FlashFXP 收费的软件,但是比较好 ... -
关于Spring
2015-02-16 14:46 2007Spring是一个轻量级J2EE框架。 Sp ... -
用Java实现发送邮件到163
2014-12-28 14:50 3859/* 在java版经常看到有人问如何用javamai ... -
Hibernate入门
2014-12-27 01:34 931前言 使用面向对象的语言和关系型的数据库,开 ... -
修改date.toLocaleString()的警告
2014-10-15 11:31 2556我们在写程序的时候,经常要查看时间,所以我们经常会用到 ... -
Java基础题 -- 简述题
2014-04-26 13:44 729(1)简述Java的运行机制 答案:Java语言根 ... -
Java基础题 -- 填空题
2014-04-26 10:00 18911. ______是一个抽象的计算机,和实际的计算机一样, ... -
FreeMaker入门
2014-04-07 19:51 1018第一章 简介 1 什么是FreeMaker ... -
jdk8 新语法
2014-04-01 23:32 1286import java.util.*; public ... -
MyBatis 入门
2014-03-27 23:31 1726每个MyBatis的中心是SqlSessionFact ... -
Jetty入门
2014-02-26 23:48 1581Jetty是一个简易的WebServer框架,使用 ... -
用Swing做的H2管理器
2014-02-24 23:07 1571MainFrame 继承了 JFrame , 增加c ...
相关推荐
本篇文章将详细探讨如何使用Java进行XML的读写操作,主要包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)三种解析方式。 **DOM解析** DOM解析器将整个XML文档加载到...
本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...
要读取XML文件,Java提供了多种方法。以下是四种常用的方法,每种都有其适用场景和特点: 1. **DOM解析器(Document Object Model)** DOM解析器将整个XML文件加载到内存中,创建一个树形结构,允许我们通过节点...
### Java读写XML文件操作详解 在现代软件开发中,XML(可扩展标记语言)是一种广泛使用的数据交换格式,尤其在处理配置文件、数据存储以及跨平台数据交换时显得尤为重要。Java提供了多种读写XML文件的方法,包括SAX...
在Java编程中,读取XML(eXtensible Markup Language)文件内容是一项常见的任务,尤其在处理配置数据、数据交换或者存储结构化信息时。XML因其可读性强、结构清晰的特点,被广泛应用于各种场景。本篇文章将详细介绍...
Java 读取 XML 文件是 Java 开发中常见的一项任务,XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等领域。本教程将深入讲解如何在 Java 中处理 XML 文件,同时涉及 XML 的 ...
### Java读写XML文件知识点详解 #### 一、概述 在Java编程中,对XML文件进行读取与写入是一项非常常见的任务。XML(可扩展标记语言)是一种用于标记数据的语言,非常适合用来存储和传输数据。Java提供了多种API来...
Java提供了多种库来解析和操作XML文档,其中JDOM(Java Document Object Model)是一个广泛使用的开源库,它提供了简单且强大的API来读取、创建和修改XML文档。 ### Java解析XML字符串 在给定的代码示例中,我们...
为了深入理解这些概念,你可以参考Java的官方文档,学习每个API的用法,并通过实践编写代码来操作XML文件,例如,创建XML文件,读取XML文件,添加、删除和修改元素,验证XML结构等。同时,也可以查阅DOM4J、JDOM等第...
StAX是介于SAX和DOM之间的解析方式,它也采用事件驱动,但允许开发者通过迭代器按需读取XML流,从而平衡了内存使用和灵活性。 6. XML Schema和DTD XML Schema和Document Type Definition (DTD)是用于定义XML文档...
Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...
通过以上代码,我们可以读取XML文件中的标签、属性和文本内容。请注意替换`path_to_your_xml_file.xml`为你的XML文件的实际路径。 在实际应用中,你可能需要根据具体需求对ContentHandler进行扩展,例如,将解析...
在Java编程中,处理XML文件是常见的需求,包括创建XML文件、读取XML文件以及解析XML内容。下面将详细介绍Java如何进行XML文件的操作。 一、Java写XML文件 1. 使用DOM(Document Object Model)API: DOM是W3C推荐...
JAVA 高手解析 XML 配置文件的读取操作 本文主要讲解了 Java 中如何读取 XML 配置文件,并对 XML 解析器进行了分类,分别介绍了 DOM 和 SAX 两种解析方式的特点和使用场景,并提供了一个使用 SAX 解析器读取 XML ...
而SAX解析器采用事件驱动的方式,逐行读取XML文件,适合处理大型XML文件以避免内存消耗。 对于多级XML,DOM解析更便于操作。以下是一个使用Java DOM解析XML的步骤: 1. 引入必要的库: 需要引入`javax.xml....
在Java编程中,读取XML文件并将其转换为树形结构是一种常见的操作,尤其是在处理配置文件、数据交换或解析XML文档时。以下是一篇详细解释如何实现这一过程的文章。 首先,我们需要了解XML(eXtensible Markup ...
以下是一个基本的Java代码示例,演示了如何读取XML文件: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c....
首先,你需要定义Java类,然后使用`jaxb绑定`生成相应的XML代码。例如: ```java // 假设我们有一个Employee类 Employee employee = new Employee(); // 设置属性... // 创建marshaller并序列化 JAXBContext ...
* 读取XML文件 * @return Document对象 * @throws DocumentException */ public void getXmlFile() throws DocumentException { SAXReader reader = new SAXReader(); File file = new File(filePath); ...