- 浏览: 116034 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
playboy0305:
正解。
geeksun 写道在执行操作前,session.cl ...
a different object with the same identifier value -
geeksun:
在执行操作前,session.clear()就行了。
a different object with the same identifier value -
qianqingfu:
文笔太烂!!!!!
a different object with the same identifier value -
oscarswing:
也就是说我写不写都行,反正仅在debug的时候有效,是吧?
ASSERT的用法 -
boreas_baosj:
恩 ~~~
a different object with the same identifier value
先定义一个简单的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("写入完成");
}
}
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("写入完成");
}
}
发表评论
-
JAVA最全的编码规范
2008-08-01 14:43 1222(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母 ... -
Java初学者都必须理解的六大问题
2008-07-29 18:14 1137Java初学者都必须理解的 ... -
HW interview2
2008-07-29 17:33 11661、有哪些数据类型 Java定义了8种简单类型:byte、 ... -
HW interview
2008-07-29 17:32 10021、有哪些数据类型 Java定义了8种简单类型:byte、 ... -
ORA-12516
2008-07-28 13:41 3961ORA-12516, TNS:listener could n ... -
Algorithmic Efficiency02
2008-07-28 10:51 1068The ability to analyze a piece ... -
Algorithmic Efficiency01
2008-07-28 10:50 1116Algorithmic Efficiency -- Beati ... -
Java语言的26个细节03
2008-07-27 10:20 14165,String类和对象池 我们知道得到String对象 ... -
Java语言的26个细节02-浅复制与深复制
2008-07-27 10:16 11224,浅复制与深复制 1)浅复制与深复制概念 ⑴浅复制(浅克隆) ... -
Java语言的26个细节01
2008-07-27 10:15 1361Java作为一门优秀的面向 ... -
java对象equals方法的重写
2008-07-26 19:07 13589什么时候需要重写equals( ... -
Java面试题-答案
2008-07-25 21:20 1003Java面试题(答案) 第 ... -
Java陷阱
2008-07-25 21:14 966面试是没什么道理可讲的,它的题目有的不合情理、脱离实际。有在纸 ... -
ant使用简介
2008-07-25 09:19 953ant使用简介 原地址:http://www ... -
理解“回调函数”
2008-07-25 00:01 1775java理解“回调函数” ... -
使用回调和线程处理一个耗时响应过程
2008-07-24 23:55 1092使用回调和线程处理一个耗时响应过程 现在程序中有许多涉及长耗 ... -
对象的串行化
2008-07-24 21:32 932转载自http://gardenlee.bokee ... -
Java虚拟机类装载:原理、实现与应用
2008-07-24 09:28 1013By jorren 发表于 2005-12-21 15:13: ... -
ASSERT的用法
2008-07-23 14:50 3675ASSERT的用法 ASSERT( booleanExpres ... -
cookie机制和session机制
2008-07-22 09:06 1885一、cookie机制和session机 ...
相关推荐
java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件
java 读写xml文件操作, 简单易懂
用java读取xml文件的四种方法
利用Java下的IO读取或写入xml及word,txt文件,且能有效去除乱码(很适用,且和POI组建比,少占了很多内存),这是我根据网上很多不同的版本,整合而出的一种最易最好的IO读写文件代码;
文档中有代码案例,详细讲解了使用java读取xml,并附带有关于xml的dtd讲解,里面包含详细的文档和代码案例。和读取xml所需的jar。
使用Java读取XML配置文件
简单利用java读取xml中的标签,也是写xml
java对xml操作,包括各种读写,java对xml操作的项目案例
java读写xml的代码
java从xml中读入数据并存入到sqlserver2005数据库中
通过不同的库方法读取修改xml文件。通过java实现。代码易懂
java解析xml字符串,添加属性,更新属性等
java实现读取xml文件内容
java读取xml文件 ,程序自带jar包在mylib下,加入工程即可,工程导入可用,更具自己需要读取xml文件生成所需文件。
java读写xml文件的例子,供参考
java xml.java操作XML文档,简单易用,快速生成
现在的开发很多很多用到xml文件,java写XML文件和读取XML文件
java代码读取xml文件,生成树形图。这里是源码,可直接使用,是我项目中提取生成树的核心文件。