首页 > 代码库 > java工具---将txt文件转成xml格式的文件

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

最近在忙一些项目,需要讲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("<fact ")){										element_fact=element.addElement("fact");					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("</fact")));					}					else {						record_ele=element_fact;					}				}				else if(text.contains("<id")){					Element element_id=record_ele.addElement("id");					//---------------------					element_id.addAttribute("string", text.substring(text.indexOf("_end=\"")+6,text.indexOf("\">")));					element_id.setText(text.substring(text.indexOf("\">")+2,text.indexOf("</id")));					//----------------------				}				else if(text.contains("wiki")){				}				else {					element_wiki.setText(text);//剩下的情况,就直接写入wiki那一栏即可				}				line_num++;			}			OutputFormat format = OutputFormat.createPrettyPrint();			XMLWriter writer;			writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(					filePath_xml), "UTF-8"), format);			writer.write(document);			writer.close();			reader.close();		} catch (IOException e1) {			e1.printStackTrace();		}	}		public static void main(String[] args) {		String s="G:\\test\\火焰凯撒的世界.txt";		File file=new File(s);		try {			txt_to_xml(file);		} catch (FileNotFoundException e) {			e.printStackTrace();		}	}}

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