[jdom-interest] Parsing Microsoft Word Documents

Hugo Garcia hugo.a.garcia at gmail.com
Fri Dec 24 11:00:47 PST 2004


Here is the code for future reference:

	public void run() throws FitException {
		fixtureDocumentProccessor = new FixtureDocumentProcessor();
		Document fixtureDocument = null;
		Document parsedFixtureDocument = null;
		try {
			SAXBuilder builder = new SAXBuilder("org.cyberneko.html.parsers.SAXParser");
			builder.setFeature("http://cyberneko.org/html/features/scanner/ignore-specified-charset",false);
			builder.setProperty("http://cyberneko.org/html/properties/names/elems",
"lower");
			builder.setFeature("http://cyberneko.org/html/features/override-doctype",
false);
			URL fileURL = inputFile.toURL();
			fixtureDocument = builder.build(fileURL);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JDOMException e) {
			e.printStackTrace();
		}
		parsedFixtureDocument = fixtureDocumentProccessor.parse(fixtureDocument);
		this.outputFitResults(parsedFixtureDocument);
	}


	private void outputFitResults(Document fitTestResult) {
		XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());
		HTMLSerializer htmlSerializer = new HTMLSerializer();
		try {
			FileOutputStream fileOutputStream = new FileOutputStream(
					this.outputFile);
			DOMOutputter converter = new DOMOutputter();
			org.w3c.dom.Document domDocument = converter.output(fitTestResult);
			OutputFormat format = new OutputFormat(domDocument);
			HTMLSerializer html = new HTMLSerializer(fileOutputStream, format);
			html.serialize(domDocument);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JDOMException e) {
			e.printStackTrace();
		}
	}


On Fri, 24 Dec 2004 13:54:37 -0500, Hugo Garcia <hugo.a.garcia at gmail.com> wrote:
> AHA!
> 
> Using the org.apache.xml.serialize.HTMLSerializer worked perfectly. No
> more funny characthers in the output. This works. I will explore the
> JTidy option later when I finish the alpha I am trying to build.
> 
> thanks and have a good holiday
> 
> -H
> 
> 
> On Fri, 24 Dec 2004 10:37:13 +0000, Paul Reeves <p_a_reeves at hotmail.com> wrote:
> > Hugo
> >
> > There hasn't been an offical jtidy release for donkeys years but that doesnt
> > mean it doesnt work! It is more than up to the task. I wouldn't hold your
> > breath for a new release  in the next few months......
> >
> > If you are using nekohtml i find that if you output the document by
> > converting it back from a jdom document to a dom document and use an
> > org.apache.xml.serialize.HTMLSerializer to output it, it usually comes out
> > looking o.k.
> >
> > merry chrimbo
> >
> > Paul
> >
> > >From: Hugo Garcia <hugo.a.garcia at gmail.com>
> > >Reply-To: Hugo Garcia <hugo.a.garcia at gmail.com>
> > >To: jdom-interest at jdom.org
> > >Subject: Re: [jdom-interest] Parsing Microsoft Word Documents
> > >Date: Thu, 23 Dec 2004 14:56:13 -0500
> > >
> > >I didn't try jtidy since the realease is so old. I rahter wait on the
> > >new release.  TagSoup didn't work becasue ti doesn't support
> > >namespaces in order to use XPath.
> > >
> > >NekoHTML parses the doument correctily yet when I see the result in
> > >Firefox (Linux) the document looks funny. I suspect it might be the
> > >characther set where  it is specified as windows but I am not sure. I
> > >am using XPath to modify a clone of the input document.
> > >
> > >Any input of your experience parsing the HTML generated from Microsoft
> > >Word is welcome.
> > >
> > >
> > >This is the intial code that sets things in motion:
> > >
> > >       public void run() throws FitException {
> > >               fixtureDocumentProccessor = new FixtureDocumentProcessor();
> > >               Document fixtureDocument = null;
> > >               try {
> > >                       SAXBuilder builder = new
> > >SAXBuilder("org.cyberneko.html.parsers.SAXParser");
> > >                                       builder.setProperty("http://cyberneko.org/html/properties/names/elems",
> > >"lower");
> > >                       builder.setFeature("http://cyberneko.org/html/features/override-doctype",
> > >false);
> > >                       URL fileURL = inputFile.toURL();
> > >                       fixtureDocument = builder.build(fileURL);
> > >               } catch (IOException e) {
> > >                       e.printStackTrace();
> > >               } catch (JDOMException e) {
> > >                       e.printStackTrace();
> > >               }
> > >               this.outputFitResults(fixtureDocumentProccessor.parse(fixtureDocument));
> > >       }
> > >
> > >
> > >-------------
> > >-H
> > >
> > >
> > >On Sat, 18 Dec 2004 11:14:11 +0000, Paul Reeves <p_a_reeves at hotmail.com>
> > >wrote:
> > > > This isnt technically a jdom question....
> > > >
> > > > Get hold of JTidy http://sourceforge.net/projects/jtidy or even better,
> > > > nekohtml http://www.apache.org/~andyc/neko/doc/html/
> > > >
> > > > Both will fix your unquotted attribute problem and also attempt to
> > >correct
> > > > unbalanced tags - jtidy also has a "clean word" facility which is rather
> > > > useful
> > > >
> > > > Paul
> > > >
> > > > >From: Hugo Garcia <hugo.a.garcia at gmail.com>
> > > > >Reply-To: Hugo Garcia <hugo.a.garcia at gmail.com>
> > > > >To: jdom-interest at jdom.org
> > > > >Subject: [jdom-interest] Parsing Microsoft Word Documents
> > > > >Date: Fri, 17 Dec 2004 11:56:57 -0500
> > > > >
> > > > >Hi
> > > > >
> > > > >I am trying to parse a Microsoft Wrod document with the SAXBuilder but
> > > > >I get an error that attributes must be qouted. When I look at the
> > > > >document I see that indeed some attibutes, especially in various meta
> > > > >tags are not quoted. I wonder if anyone has run into this problem and
> > > > >if so if you have a work around or solution.
> > > > >
> > > > >thanks
> > > > >
> > > > >-H
> > > > >_______________________________________________
> > > > >To control your jdom-interest membership:
> > > > >http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com
> > > >
> > > >
> > >_______________________________________________
> > >To control your jdom-interest membership:
> > >http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com
> >
> >
>


More information about the jdom-interest mailing list