[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Cannot close an XML file used for parsing
- From: Robert Koberg <rob@koberg.com>
- To: Jack Bush <netbeansfan@yahoo.com.au>
- Date: Tue, 28 Oct 2008 08:58:25 -0400
On Oct 28, 2008, at 8:41 AM, Jack Bush wrote:
> Hi Robert,
>
> Thanks for responding to this post.
>
> I have added your suggestion but the issue still persist.
> Nevertheless, I do believe that this is caused by the new XML file
> not having been closed properly.
Well, sure, but closing it in the finally block should close it. You
are closing the in and out in the finally block, right?
At a different level, since you want this to be XML, you might try
using tagsoup as your SAX parser:
http://home.ccil.org/~cowan/XML/XML/tagsoup/
this will clean up your HTML for you so you can hopefully avoid the
error in the first place.
However, before you do that, it would be a good idea to find out why
you can't close your streams.
Also, perhaps separate out the read and write into two different try
blocks.
best,
-Rob
>
> There is no problem with light-html2xml method which has worked in
> the past.
>
> Any more suggestion to try out?
>
> Thanks,
>
> Jack
>
> 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.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
>
> Search 1000's of available singles in your area at the new Yahoo!7
> Dating. Get Started.
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]