跪求!把txt文件转成xml文件格式!

wanghui_yan 2011-05-06 02:59:01
我有一个这样的txt文件
id name sex
1 张三 男
2 李四 女
想把它转换成下面的xml格式
<班级>
<学生 id=1>
<name>张三</name>
<sex>男</sex>
</学生>
<学生 id=2>
<name>李四</name>
<sex>女</sex>
</学生>

</班级>
求救 跪求 请各位大侠指点一下 源码怎么写?请各位大侠 指教下!谢谢了!
...全文
1091 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
南城IT小工 2011-05-09
  • 打赏
  • 举报
回复
XMLWriter output;
//输出格式化
OutputFormat format = OutputFormat.createPrettyPrint();
//指定XML编码(默认编码为UTF-8,如果有汉字不能正常显示)
format.setEncoding("GB2312")
;[Quote=引用 2 楼 tntsuifeng 的回复:]

随便写了下,你需要下载DOM4J 的jar包才能使用。
Java code

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.……
[/Quote]
yang3wei 2011-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ylz2007 的回复:]
每次读取一行,按行解析生成元素,基本就是这个思路(使用jdom.jar):


Java code

try {
FileReader read = new FileReader("D:/test.txt");
BufferedReader br = new BufferedReader(read);
String contents;
Element cl……
[/Quote]
顶!!
java爱好者 2011-05-08
  • 打赏
  • 举报
回复
先读入txt文件然后分析每一行的数据,根据数据的形式在用dom4j来写xml文件
Hwatu_du 2011-05-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q594363790 的回复:]
写Xml要用DTD:
<?xml version="1.0" ecoding="UTF-8" standalone="yes"?>
<!DOCTYPE 班级[
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST sex (男|女) #REQUIRED>
<!ELEMENT 学生 ANY>
<!A……
[/Quote]

<!DOCTYPE 班级[
<!--这里面,缺了一行代码,-->
<!ELEMENT 班级 (学生)>
]>

写完了,把后缀名改就.xml,就可以了。不知道大家怎么样看~~~
Hwatu_du 2011-05-08
  • 打赏
  • 举报
回复
写Xml要用DTD:
<?xml version="1.0" ecoding="UTF-8" standalone="yes"?>
<!DOCTYPE 班级[
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST sex (男|女) #REQUIRED>
<!ELEMENT 学生 ANY>
<!ATTLIST 学生 id CDATA "1">
<!ELEMENT 学生 (name,sex)>
]>

<班级>
<学生 id=1>
<name>张三</name>
<sex>男</sex>
</学生>
<学生 id=2>
<name>李四</name>
<sex>女</sex>
</学生>
</班级>


写完了没运行,不敢保证100%对。反正就是这样的格式啦
tntsuifeng 2011-05-06
  • 打赏
  • 举报
回复
随便写了下,你需要下载DOM4J 的jar包才能使用。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class ReadTxt {
public static void main(String[] args) throws IOException {
FileReader read = new FileReader("c:/test.txt");
BufferedReader br = new BufferedReader(read);
String str = null;
// 创建一个document
Document document = DocumentHelper.createDocument();
// 创建根结点
Element root = document.addElement("班级");
while ((str = br.readLine()) != null) {
String xmlData[] = str.split(" ");
// 为根结点添加一个student节点
Element student = root.addElement("学生");
// 为student添加属性id
Element id = student.addElement("id");
id.setText(xmlData[0]);
// 为student添加属性name
Element name = student.addElement("name");
name.setText(xmlData[1]);
// 为student添加属性sex
Element sex = student.addElement("sex");
sex.setText(xmlData[2]);
}
XMLWriter output;
//输出格式化
OutputFormat format = OutputFormat.createPrettyPrint();
try {
output = new XMLWriter(new FileWriter("c:/test.xml"), format);
output.write(document);
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

  • 打赏
  • 举报
回复
每次读取一行,按行解析生成元素,基本就是这个思路(使用jdom.jar):


try {
FileReader read = new FileReader("D:/test.txt");
BufferedReader br = new BufferedReader(read);
String contents;
Element classElement=new Element("班级");
while((contents = br.readLine())!=null){
String[] contentElements = contents.split(" ");
Element stuElement = new Element("学生");
stuElement.addAttribute("id",contentElements[0]);

Element nameElement = new Element("name");
nameElement.addContent(contentElements[1]);

Element sexElement = new Element("sex");
sexElement.addContent(contentElements[2]);

stuElement.addContent(name);
stuElement.addContent(sex);

classElement.addContent(stuElement);
}
Document doc=new Document(classElement);

XMLOutputter out = new XMLOutputter();
out.setFormat(Format.getCompactFormat().setEncoding("GB2312"));

out.output(doc,new FileOutputStream("D:/test.xml"));

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
1. 思考一下   学习Java之前,先别急,静下心来好好想想:   1)你对学习Java是否有兴趣?   2)你是否能静下心来坚持不懈地学习?   嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看……   2. 准备一下   请不要把你的学习Java之路和其它计算机技术分开看待,技术的联系往往是千丝万缕的,你应该掌握一些学习Java所涉及的基础知识,对于“CLASSPATH要怎么设置啊”、“JDK下载地址”等等问题,你不该问,因为Internet上太多答案了,甚至换个角度说,你是不是还不适合直接学习编程?   1)买本Java学习用书。   JDK 6正式版刚刚推出,市面上你暂时买不到JDK6的书籍,但我仍推荐你买一本适合入门的、较新JDK版本的Java书籍,那么,你现在选择一本讲述JDK5的入门书籍还是有条件的。我可以推荐一些入门书,但是我不打算这么做,因为合我口味的,不一定适合你。但无论如何,《Thinking In Java》绝对不应该作为你入门Java的第一本书籍!   记住,网络上学习Java的资源很多,但基本不够系统,拥有一本Java入门书籍,是你系统学习Java的基础。   2)准备Java学习环境。   准备你的学习环境,很简单,安装JDK6,然后用类似UltraEdit、EditPlus的文本编辑器配置你的学习环境,Internet上有很多关于如何配置的文章。初学Java,不建议用IDE工具,通过一行行的敲代码,你会碰到很多问题,只有这样,你才能学会怎样解决问题,并加深自己对Java的理解。   准备好后,开始进入激动人心的Java学习里程吧!   3. Java基础学习之路   学习Java的过程虽然辛苦些,但又是处处有精彩!学习过程中的心态一定要保持专一,网上关于语言间的“PK”到处都是,别被浮躁影响!认准了Java,你就坚持!克服心魔,恒心最终会给你回报的。   Java的体系分为Java SE、Java EE和Java ME(JDK 5.0以前分别叫J2SE、J2EE和J2ME),Java的敲门砖就是Java SE了,也就是你要入门学习的内容,不论你日后是选择哪个体系领域作为发展方向,你都得从Java SE起步。   学习Java SE,打好Java基础;如果想学Java EE(对不起,我不了解JavaME,所以我无法涉及JavaME的相关内容),对于AWT、Swing是否要学习呢,我个人是觉得还是要知道其所以然的,特别是其事件处理模式,我强烈建议初学者一定要弄清楚,其他具体的开发就不一定要全面掌握了,毕竟AWT、Swing方面的内容足够用几本大部头的书才能描述详尽;当然,如果你的工作就是做AWT、Swing开发,那就另当别论了。   I/O、Thread都是基础之一。   4. Java EE学习之路   学习了Java SE,还只是完“万里长征”的第一步。   接下来选择学习Java EE或是Java ME(或者你还想不断深入学习JavaSE,只要你喜欢,你可以一直深入下去,就像前面所说的,我不会讲到Java ME的学习);估计选择Java EE方面的学习者会多一些,JavaEE所涉及技术非常多,考虑到初学者的接受程度,我会尽量从最常用的角度来介绍。   学习Java EE,在开发环境上不建议再用文本编辑器,我感觉NetBeans 5.5(目前最高正式版本)很适合初学者,我个人也很喜欢NetBeans,如果你喜欢用别的IDE如Eclipse,都没问题,看自己喜欢吧。   4.1 学习JSP/Servlet   Java EE最高版本目前是5.0版本。   在JavaEE中,首先要学习JSP/Servlet(结合Tomcat、MySQL)技术,建议JSP1.2/2.X的知识都要掌握,毕竟现在很多的在用系统都还是基于JSP1.2,学习JSP,还必须掌握一些外延技术,如:你还得掌握HTML基础知识,最好再掌握些JavaScript(目前正火的AJAX技术之一)、CSS的技术,而了解XML是必不可少的(至少描述性配置信息是通过XML来描述的)。在学习JSP/Servlet过程中,应该结合学习JDBC、数据库开发技术,毕竟绝大多数Java Web项目都是和数据库紧密结合的。   4.2 学习数据库开发技术   这里我想重点说一下数据库开发技术,数据库技术是做业务系统必备技能,JavaWeb开发人员最低程度都应该掌握SQL语句的使用!数据库技术大体可分为DBA技术和数据库开发技术,对于开发而言,应侧重数据库开发技术,而数据库基本操作,也是要掌握的。常用数据库有DB2、Oracle、SQLServer、My

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧