<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:12pt"><DIV>Hi All,<BR><BR>I appears to have difficulty closing (possibly flushing it first) an XML file that was subsequently being parsed without success. The error generated is:<BR><BR><B>org.jdom.input.JDOMParseException: Error on line 23: The element type "form" must be terminated by the matching end-tag "&lt;/form&gt;".</B></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: Courier New, courier, monaco, monospace, sans-serif">
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: Courier New, courier, monaco, monospace, sans-serif">
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: Courier New, courier, monaco, monospace, sans-serif">
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: Courier New, courier, monaco, monospace, sans-serif">
<DIV><STRONG></STRONG>
<DIV class=pad5x10><BR>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:<BR><CODE class="jive-code jive-java"><FONT color=navy><B></B></FONT></CODE></DIV>
<DIV class=pad5x10><CODE class="jive-code jive-java"><FONT color=navy><B>public</B></FONT> String readData() <FONT color=navy>{</FONT><BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; <FONT color=navy><B>try</B></FONT> <FONT color=navy>{</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URL url&nbsp; = <FONT color=navy><B>new</B></FONT> URL(<FONT color=red>"http://www.abc.com"</FONT>);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URLConnection connection = url.openConnection();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputStream isInHtml = url.openStream();&nbsp;&nbsp; <FONT color=darkgreen>// throws an IOException&nbsp;&nbsp;&nbsp;&nbsp; </FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disInHtml = <FONT color=navy><B>new</B></FONT> DataInputStream(<FONT color=navy><B>new</B></FONT> BufferedInputStream(isInHtml));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.flush(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream fosOutHtml = <FONT color=navy><B>null</B></FONT>;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fosOutHtml = <FONT color=navy><B>new</B></FONT> FileOutputStream(<FONT color=red>"C:\\Temp\\ABC.html"</FONT>);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=navy><B>int</B></FONT> oneChar, count=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=navy><B>while</B></FONT> ((oneChar=disInHtml.read()) != -1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fosOutHtml.write(oneChar);</CODE></DIV>
<DIV class=pad5x10><CODE class="jive-code jive-java">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch { ... }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isInHtml.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disInHtml.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fosOutHtml.flush(); // optional<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fosOutHtml.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp; <FONT color=navy>}</FONT><BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; <FONT color=navy><B>try</B></FONT> <FONT color=navy>{</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File fileInHtml = <FONT color=navy><B>new</B></FONT> File(<FONT color=red>"C:\\Temp\\ABC.html"</FONT>);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileReader frInHtml = <FONT color=navy><B>new</B></FONT>
 FileReader(fileInHtml);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedReader brInHtml = <FONT color=navy><B>new</B></FONT> BufferedReader(frInHtml);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String string = <FONT color=red>""</FONT>;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=navy><B>while</B></FONT> (brInHtml.ready())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string += brInHtml.readLine() + <FONT color=red>"\n"</FONT>;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fwOutXml&nbsp; = <FONT color=navy><B>new</B></FONT> FileWriter(<FONT color=red>"C:\\Temp\\ABC.xml"</FONT>);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pwOutXml&nbsp; = <FONT color=navy><B>new</B></FONT> PrintWriter(fwOutXml);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; light_html2xml html2xml = <FONT color=navy><B>new</B></FONT>
 light_html2xml();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pwOutXml.print(html2xml.Html2Xml(string));</CODE></DIV>
<DIV class=pad5x10><CODE class="jive-code jive-java">&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp; catch { ... }<BR>&nbsp;&nbsp;&nbsp; finally {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fwOutXml.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pwOutXml.close();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <FONT color=navy><B>return</B></FONT> fileInHtml.getAbsolutePath();<BR><FONT color=navy>}</FONT><BR>&nbsp;<BR><FONT color=darkgreen>// parseData reads the XML file using the name returned by readData()</FONT><BR><FONT color=navy><B>public</B></FONT> <FONT color=navy><B>void</B></FONT> parseData(String XMLFilename)<BR><FONT color=navy>{</FONT><BR>&nbsp;&nbsp;&nbsp; <FONT color=navy><B>try</B></FONT> <BR>&nbsp;&nbsp;&nbsp; <FONT color=navy>{</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileReader frInXml = <FONT color=navy><B>new</B></FONT> FileReader(FileName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedReader brInXml =
 <FONT color=navy><B>new</B></FONT> BufferedReader(frInXml);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXBuilder saxBuilder = <FONT color=navy><B>new</B></FONT> SAXBuilder(<FONT color=red>"org.apache.xerces.parsers.SAXParser"</FONT>); <FONT color=darkgreen>// JDOMParseException generated.</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ....<BR><FONT color=navy>}</FONT><BR></DIV></CODE>
<DIV class=pad5x10>These codes would worked when they were in a single method but I have since placed some structure around them using a number methods.<BR><BR>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.<BR><BR>I am running JDK 1.6.0_10, Netbeans 6.1, JDOM 1.1 on Windows XP platform.<BR><BR>Any assistance would be appreciated.<BR><BR>Many thanks,<BR><BR>Jack </DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></div><br>



      <hr size=1> Search 1000's of available singles in your area at the new Yahoo!7 Dating.  
<a href="http://au.rd.yahoo.com/dating/mail/tagline1/*http://au.dating.yahoo.com/?cid=53151&pid=1011">Get Started</a>.</body></html>