XML-dokumenttien käsittelystä Javalla

Siistiminen ja korjaus

HtmlFixer.java siistii ja korjaa syötteenä annetun HTML-fragmentin. Korjatun HTML-fragmentin ympärille lisätään <div>-elementti. Jos siistiminen ei onnistu, ohjelma ei palauta mitään.

Ohjelma käyttää siistimiseen JTidy-ohjelmaa. Ulostulo on useimmissa tilanteissa validia HTML 1.0 Strict -koodia, mutta JTidy ei takaa tuloksen validiutta.

Ohjelma sisältää yksikkötestauksen, jossa mitataan laskentaan menevä aika. Testitapausten ulostulo on koottu tiedostoon out.html. Testi on ajettavissa testrun.sh-skriptillä. Yksittäisen lyhyen (<10KB) fragmentin korjaukseen menee aikaa n. 10-100 ms.

Validointi

Validator.java demonstroi HTML-dokumentin osan tai minkä tahansa XML-dokumentin validointia. Validointi on toteutettu SAX-parserina, joka ei käsittele koodia mitenkään, mutta heittää poikkeuksen ensimmäisestä löytämästään virheestä.

Koodi perustuu pääosin Sunin sivuilla olevaan tutoriaaliin XML:n käsittelystä Javalla: Working with XML.

Yksinkertaiset virheet saa poistettua koodista esikäsittelemällä tiedot HTML Tidy -ohjelmalla. Käyttöesimerkki: (linux, julkaisupäivä 1.2.2002)

  1. Kopioi työhakemistoon config.txt.
  2. Anna komento tidy -config config.txt lähtötiedosto > tulostiedosto.

Esimerkin asetustiedostolla Tidy muuntaa lähtötiedoston striktiin XHTML 1.0 -muotoon.

Miika Nurminen
22.10.2003