00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 package org.objectweb.cjdbc.common.util;
00026
00027 import java.io.BufferedReader;
00028 import java.io.BufferedWriter;
00029 import java.io.File;
00030 import java.io.FileReader;
00031 import java.io.FileWriter;
00032
00033 import org.apache.tools.ant.BuildException;
00034 import org.apache.tools.ant.Task;
00035
00036
00037
00038
00039
00040
00041
00042
00043 public class SplitXmlTask extends Task
00044 {
00045 private String xmlFilePath;
00046 private String outputDir;
00047 private String attributeName;
00048 private String startTagName;
00049 private String endTagName;
00050
00051
00052
00053
00054 public void execute() throws BuildException
00055 {
00056 try
00057 {
00058 BufferedReader reader = new BufferedReader(new FileReader(xmlFilePath));
00059 String lineBuffer;
00060 while ((lineBuffer = reader.readLine()) != null)
00061 {
00062 if (lineBuffer.indexOf(startTagName) != -1)
00063 {
00064
00065 int index = lineBuffer.indexOf(attributeName)
00066 + attributeName.length() + 2;
00067 String fileName = lineBuffer.substring(index, lineBuffer.indexOf(
00068 '\"', index));
00069 BufferedWriter writer = new BufferedWriter(new FileWriter(outputDir
00070 + File.separator + fileName + ".xml"));
00071 writer.write(lineBuffer + System.getProperty("line.separator"));
00072 while ((lineBuffer = reader.readLine()) != null
00073 && lineBuffer.indexOf(endTagName) == -1)
00074 {
00075 writer.write(lineBuffer + System.getProperty("line.separator"));
00076 }
00077 if (lineBuffer != null)
00078 writer.write(lineBuffer + System.getProperty("line.separator"));
00079 writer.flush();
00080 writer.close();
00081 continue;
00082 }
00083 }
00084 }
00085 catch (Exception e)
00086 {
00087 throw new BuildException(e.getMessage());
00088 }
00089 }
00090
00091
00092
00093
00094
00095
00096 public void setScriptXmlFile(String xmlFilePath)
00097 {
00098 this.xmlFilePath = xmlFilePath;
00099 }
00100
00101
00102
00103
00104
00105
00106 public void setOutputDir(String outputDirPath)
00107 {
00108 this.outputDir = outputDirPath;
00109 File newDir = new File(outputDir);
00110 newDir.mkdirs();
00111 }
00112
00113
00114
00115
00116
00117
00118 public void setParsingTagName(String tagName)
00119 {
00120 this.startTagName = "<" + tagName + " ";
00121 this.endTagName = "</" + tagName + ">";
00122 }
00123
00124
00125
00126
00127
00128
00129
00130 public void setOuputFileAttribute(String attributeName)
00131 {
00132 this.attributeName = attributeName;
00133 }
00134 }