Parsowanie XML część 2

W poprzedniej notce ogólnie omówiłem parsowanie dokumentów xml w javie przy użyciu klasy Digester. Teraz troszkę rozbudujmy nasz dokument xml o dane kontaktowe

<Osoba>
<DaneOsobowe>
  <Imie>Jan</Imie>
  <Nazwisko>Iksisnki</Nazwisko>
</DaneOsobowe>
<Adres>
  <AdresZamieszkania>
    <Ulica>Nowa</Ulica>
    <Nr>4</Nr>
    <Miejscowosc>Kraków</Miejscowosc>
  </AdresZamieszkania>
</Adres>
</Osoba>

Do naszej klasy w której były pola Person w której były pola name i surname dodajemy pola street, number i localization z oraz settery i gettery dla tych pól. I teraz wywołujemy metodę parsującą bardzo podobną jak ostanio.

Digester dig =  new Digester();
dig.setValidating(false)
//tutaj uwaga bo brak linijki dig.addObjectCreate("*/DaneOsobowe", Person.class);
dig.addBeanPropertySetter("*/DaneOsobowe/Imie", "name");
dig.addBeanPropertySetter("*/DaneOsobowe/Nazwisko", "surname");
dig.addBeanPropertySetter("*/AdresZamieszkania/Ulica", "street");
dig.addBeanPropertySetter("*/AdresZamieszkania/Nr", "number");
dig.addBeanPropertySetter("*/AdresZamieszkania/Miejscowosc", "localization");
//tutaj kolejna różnica
dig.push(new Person());
Person person = (Person) dig.parse(new StringReader(documentContent));

Czym się rożni ten kawałek kodu od poprzedniego. Usunięta linijka dig.addObjectCreate(”*/DaneOsobowe”, Person.class); Mamy 2 wzorce, jeden */DaneOsobowe a drugi */AdresZamieszkania. Najprawdopodobniej można dodać kolejną linijkę addObjectCreate, nie sprawdzane przeze mnie. Ale rozwiązaniem na to jest dodanie na stos nowej instancji naszej klasy Person, które wykonuje się w linijce dig.push(new Person()). Tylko jeśli w dokumencie będzie więcej atrybutów o takich samych nazwach ale leżących w innych gałęziach, trzeba pamiętać o dobrym ustawieniu wzorców w addBeanPropertySetter.

Trzecia część- wiele atrybutów

Odpowiedzi: 2 do “Parsowanie XML część 2”

  1. Parsowanie XML 3-wiele atrybutów o takiej samej nazwie « nyfi’s considerations Says:

    [...] Druga część Pierwsza część Posted in Uncategorized. [...]

  2. Parsowanie XML w javie część 1 « nyfi’s considerations Says:

    [...] Druga część 3 część wiele atrybutów Napisane w java. Tagi: apache, Digester, java, parsowanie, przetwarzania, xml. Komentarzy: 2 » [...]


Napisz odpowiedź