00001
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
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
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
00096 public void setScriptXmlFile(String xmlFilePath)
00097 {
00098
this.xmlFilePath = xmlFilePath;
00099 }
00100
00106 public void setOutputDir(String outputDirPath)
00107 {
00108
this.outputDir = outputDirPath;
00109 File newDir =
new File(
outputDir);
00110 newDir.mkdirs();
00111 }
00112
00118 public void setParsingTagName(String tagName)
00119 {
00120
this.startTagName =
"<" + tagName +
" ";
00121
this.endTagName =
"</" + tagName +
">";
00122 }
00123
00130 public void setOuputFileAttribute(String attributeName)
00131 {
00132
this.attributeName = attributeName;
00133 }
00134 }