有如下一个ttl.txt文本文档,每一行用空格隔开的三段分别代表主谓宾,
要将它们输出为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[0]);//孩子节点再添加孩子节点 element1.addElement("谓语").addText(arrays[1]); element1.addElement("宾语").addText(arrays[2]); //把生成的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文档,部分内容如下: