Hi All,
I appears to have difficulty closing (possibly flushing it first) an XML file that was subsequently being parsed without success. The error generated is:
org.jdom.input.JDOMParseException: Error on line 23: The element type "form" must be terminated by the matching end-tag "</form>".
Below is the code snippets of readData() to retrieve (HTML) data from a website, save it to a file, then convert to XML format before returning the new filename:
public String readData() {
try {
URL url = new URL("http://www.abc.com");
URLConnection connection = url.openConnection();
InputStream isInHtml = url.openStream(); // throws an IOException
disInHtml = new DataInputStream(new BufferedInputStream(isInHtml));
System.out.flush();
FileOutputStream fosOutHtml = null;
fosOutHtml = new FileOutputStream("C:\\Temp\\ABC.html");
int oneChar, count=0;
while ((oneChar=disInHtml.read()) != -1)
fosOutHtml.write(oneChar);
isInHtml.close();
disInHtml.close();
fosOutHtml.flush(); // optional
fosOutHtml..close();
.....
}
try {
File fileInHtml = new File("C:\\Temp\\ABC.html");
FileReader frInHtml = new FileReader(fileInHtml);
BufferedReader brInHtml = new BufferedReader(frInHtml);
String string = "";
while (brInHtml.ready())
string += brInHtml.readLine() + "\n";
fwOutXml = new FileWriter("C:\\Temp\\ABC.xml");
pwOutXml = new PrintWriter(fwOutXml);
light_html2xml html2xml = new light_html2xml();
pwOutXml.print(html2xml.Html2Xml(string));
system.out.flush() // optional
fwOutXml.flush(); // optional
fwOutXml.close();
pwOutXml.flush(); // optional
pwOutXml.close();
return fileInHtml.getAbsolutePath();
....
}
}
// parseData reads the XML file using the name returned by readData()
public void parseData(String XMLFilename)
{
try
{
FileReader frInXml = new FileReader(FileName);
BufferedReader brInXml = new BufferedReader(frInXml);
SAXBuilder saxBuilder = new SAXBuilder("org.apache.xerces.parsers.SAXParser"); // JDOMParseException generated.
....
}
These codes would worked when they were in a single method but I have since placed some structure around them using a number methods.
This issue has risen in th past where I have been able to close the XML file prior to reading them again. However, I don't have a solution for it this time round.
I am running JDK 1.6.0_10, Netbeans 6.1, JDOM 1.1 on Windows XP platform.
Any assistance would be appreciated.
Many thanks,
Jack