XML w Javie

Z BioFizInfo
Przejdź do nawigacji Przejdź do wyszukiwania

Ten artykuł ma przybliżyć sposób wczytywania i zapisywania plików w formacie XML z poziomu języka Java.

Istnieje kilka bibliotek i metod, które mogą do tego służyć. Najłatwiejszą i najwygodniejszą jest biblioteka JDOM.

Instalacja (w NetBeans)

Po rozpakowaniu paczki pobranej ze strony projektu JDOM (http://www.jdom.org/dist/binary/jdom-1.1.2.tar.gz) w katalogu build znajdują się pliki:

  • jdom-1.1.2.jar – biblioteka JDOM
  • jdom-1.1.2-sources.jar – źródła biblioteki
  • jdom-1.1.2-javadoc.jar – dokumentacja w formacie Javadoc

Instalacja ad-hoc

Aby jednorazowo użyć JDOM w projekcie można dodać do bibliotek plik jdom-1.1.2.jar (Kliknięcie prawym przyciskiem myszy na pozycji Libraries w drzewie projektu, a następnie opcja Add JAR/Folder)

Instalacja stała

Jeżeli zamierzamy używać JDOM w wielu projektach i/lub chcemy, aby środowisko NetBeans w ramach podpowiedzi przy wpisywaniu kodu prezentowało opisy klas i metod z dokumentacji Javadoc, można na stałe dołączyć JDOM do bibliotek zarejestrowanych w środowisku NetBeans. Służy do tego opcja Tools/Libraries>New Library.... W zakładkach Classpath, Sources, Javadoc dodajemy odpowiednio pliki jdom-1.1.2.jar, jdom-1.1.2-sources.jar, jdom-1.1.2-javadoc.jar(należy użyć przycisku Add ZIP/Folder...).

Po zarejestrowaniu biblioteki w NetBeans można dodać ją do projektu opcją Add library(po kliknięciu RMB na pocyzji Libraries w drzewie projektu.


Przykład użycia biblioteki JDOM

Problem

Przypuśćmy, że mamy klasy Gwiazda i Film służące do przechowywania informacji o gwiazdach filmowych i filmach, w których wystąpiły.


public class Gwiazda {
    private String nazwisko;
    private List<String> adresy = new ArrayList<String>();
    private List<Film> filmy = new ArrayList<Film>();

    Gwiazda(String nazwisko, String adres) {
        this.nazwisko = nazwisko;
        this.adresy.add(adres);
    }

    @Override
    public String toString() {
        String res = "Nazwisko: " + this.nazwisko + "\n";

        for (String adres : this.adresy) {
            res += "Adres: " + adres + "\n";
        }

        if (this.filmy.size() > 0) {
            res += "Wystapil(a) w:\n";
            for (Film film : this.filmy) {
                res += film + "\n";
            }
        }

        return res;
    }
}