From: Robert Koberg <rob@koberg.com>
To: Jack Bush <netbeansfan@yahoo.com.au>
Cc: xml-dev@lists.xml.org
Sent: Tuesday, 28 October, 2008 9:42:21 AM
Subject: Re: [xml-dev] Cannot close an XML file used for parsing
close the stream or reader in a finally block to avoid leaving it open
if an error occurs.
try{
}catch(....){
}finally {
}
On Oct 27, 2008, at 6:03 PM, Jack Bush wrote:
> 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
>
> Make the switch to the world's best email. Get Yahoo!7 Mail.
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address:
http://www.oasis-open.org/mlmanage/Or unsubscribe:
xml-dev-unsubscribe@lists.xml.orgsubscribe:
xml-dev-subscribe@lists.xml.orgList archive:
http://lists.xml.org/archives/xml-dev/List Guidelines:
http://www.oasis-open.org/maillists/guidelines.php