java工具---将txt文件转成xml格式的文件

2014-11-23 22:21:55 · 作者: · 浏览: 0

最近在忙一些项目,需要讲txt文件转成xml格式的文件,在网上没找到比较好的方法,问师兄,说是用java,使用相关的jar包,就能够搞定。于是试着弄了。并且记录下来;

预备工作:

导入需要的jar包,下载地址可参考我上传的:http://download.csdn.net/detail/u010454729/7272571

以下为使用jar包调用函数的例子:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

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


public class test {
	public static void txt_to_xml(File file) throws FileNotFoundException {
		//txt文件转成xml文件,并且写入到xml文件里面,
		String encoding="UTF-8";
		InputStreamReader read;
		try {
			read = new InputStreamReader(
			        new FileInputStream(file),encoding);
			BufferedReader reader = new BufferedReader(read);//用于读入的一些准备
			InputStream fin = new FileInputStream(file);
			
			String xml_name=file.getName().substring(0,file.getName().indexOf("的世界"));//找到对应的文件的名字
			Document document = DocumentHelper.createDocument();
			
			Element root = document.addElement("Entity");
			root.addAttribute("title",xml_name);//根节点,添加属性
			root.addAttribute("type", "PER");
			root.addAttribute("id", "");
			root.addAttribute("name", xml_name);
			
			Element element = null;
			String text = "";
			int line_num=1;
			
			String file_getname=file.getAbsolutePath();
			String filePath_xml=file_getname.substring(0,file_getname.indexOf("."))+".xml";//输出路径
			element = root.addElement("facts");
			element.addAttribute("class","Infobox");
			
			Element element_fact=null;
			Element element_wiki=root.addElement("wiki_text");
			Element record_ele=null;
			while ((text=reader.readLine())!=null) {	
//				System.out.println(text+"----------------------------------------"+line_num);//用于打印出读入的每行字符串,检测
				if(text.contains("entity")||text.contains("facts")){					
				}
				else if(text.contains("
  
   <")){
						element_fact.addAttribute("name", text.substring(text.indexOf("name=\"")+6,text.indexOf("\"><")));	
					}
					else if(text.contains("attr")){
						element_fact.addAttribute("name", text.substring(text.indexOf("name=\"")+6,text.indexOf("attr")-2));
						element_fact.setText(text.substring(text.indexOf("\">")+2,text.indexOf("")));
					element_id.setText(text.substring(text.indexOf("\">")+2,text.indexOf("