XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Cannot close an XML file used for parsing


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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS