解析txt文本,dom4j工具输出为xml文档

时间:2023-03-08 22:56:13
解析txt文本,dom4j工具输出为xml文档

有如下一个ttl.txt文本文档,每一行用空格隔开的三段分别代表主谓宾,

要将它们输出为xml格式文档

解析txt文本,dom4j工具输出为xml文档

工具:dom4j,jar包导入MyEclipse的Java Project工程

代码如下:

package com.jhtc;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter; public class Parse {
public static void main(String[] args) {
File f=new File("C:/Users/Administrator/Desktop/ttl.txt");
InputStream fis=null;
InputStreamReader isr=null;
BufferedReader br=null;
String str="";
//1.第二种 创建文档及设置根元素节点的方式
Element root = DocumentHelper.createElement("ttl");
Document document = DocumentHelper.createDocument(root);
//给根节点添加孩子节点
Element element1 = null;
XMLWriter xmlWriter=null;
try {
fis=new FileInputStream(f);
isr=new InputStreamReader(fis);
br=new BufferedReader(isr); while((str=br.readLine())!=null){
System.out.println(str);
//String arrays[]=str.split("\\s+");//匹配多个空格,split支持正则表达式
String arrays[]=str.split(" {3,}");//匹配3个及3个以上的空格 element1 = root.addElement("主谓宾");//给根节点添加孩子节点
//把一行三段输出为xml格式
element1.addElement("主语").addText(arrays[]);//孩子节点再添加孩子节点
element1.addElement("谓语").addText(arrays[]);
element1.addElement("宾语").addText(arrays[]); //把生成的xml文档存放在硬盘上 true代表是否换行
OutputFormat format = new OutputFormat(" ",true);
format.setEncoding("UTF-8");//设置编码格式
xmlWriter = new XMLWriter(new FileOutputStream("ttl.xml"),format); xmlWriter.write(document); }
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
xmlWriter.close();
br.close();
isr.close();
fis.close(); } catch (IOException e) {
e.printStackTrace();
}
}
}
}

看到工程目录下生成了ttl.xml文档,部分内容如下:

解析txt文本,dom4j工具输出为xml文档